Gitlab Runner with OpenNebula docker machine driver
1.0K
Based on official gitlab/gitlab-runner with added:
Docker file used to build
FROM golang:1.13 as builder
COPY one /usr/src/one
WORKDIR /usr/src/one/src/docker_machine/src/docker_machine
RUN go get -u github.com/golang/dep/cmd/dep && make
FROM gitlab/gitlab-runner:v17.11.1
ENV docker_url=https://download.docker.com/linux/static/stable/x86_64
ENV docker_version=28.1.1
ENV docker_compose_url=https://github.com/docker/compose/releases/download
ENV docker_compose_version=2.35.1
ENV docker_machine_url=https://gitlab-docker-machine-downloads.s3.amazonaws.com
ENV docker_machine_version=0.16.2-gitlab.35
# Install docker
RUN apt-get update && \
apt-get -y install sudo && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
curl -fsSL $docker_url/docker-$docker_version.tgz | tar zxvf - --strip 1 -C /usr/bin docker/docker && \
curl -L $docker_compose_url/$docker_compose_version/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose && \
chmod +x /usr/local/bin/docker-compose && \
curl -L $docker_machine_url/v$docker_machine_version/docker-machine-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-machine && \
chmod +x /usr/local/bin/docker-machine
COPY --from=builder /usr/src/one/src/docker_machine/src/docker_machine/bin/docker-machine-driver-opennebula /usr/local/bin/docker-machine-driver-opennebula
RUN chmod +x /usr/local/bin/docker-machine-driver-opennebula
RUN echo "gitlab-runner hard nofile 65536" >> /etc/security/limits.conf
RUN echo "gitlab-runner soft nofile 65536" >> /etc/security/limits.conf
COPY entrypoint /
RUN chmod +x /entrypoint
STOPSIGNAL SIGQUIT
VOLUME ["/etc/gitlab-runner", "/home/gitlab-runner"]
ENTRYPOINT ["/usr/bin/dumb-init", "/entrypoint"]
CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"]
entrypoint
#!/bin/bash
# gitlab-runner data directory
DATA_DIR="/etc/gitlab-runner"
CONFIG_FILE=${CONFIG_FILE:-$DATA_DIR/config.toml}
# custom certificate authority path
CA_CERTIFICATES_PATH=${CA_CERTIFICATES_PATH:-$DATA_DIR/certs/ca.crt}
LOCAL_CA_PATH="/usr/local/share/ca-certificates/ca.crt"
update_ca() {
echo "Updating CA certificates..."
cp "${CA_CERTIFICATES_PATH}" "${LOCAL_CA_PATH}"
update-ca-certificates --fresh >/dev/null
}
if [ -f "${CA_CERTIFICATES_PATH}" ]; then
# update the ca if the custom ca is different than the current
cmp --silent "${CA_CERTIFICATES_PATH}" "${LOCAL_CA_PATH}" || update_ca
fi
# Preserve environment vars for opennebula driver
echo export ONE_XMLRPC=${ONE_XMLRPC} >> /etc/profile.d/docker.sh
echo export ONE_AUTH=${ONE_AUTH} >> /etc/profile.d/docker.sh
# make docker available for non-root user
chmod 777 /var/run/docker.sock
# launch gitlab-runner passing all arguments
exec gitlab-runner "$@"
Content type
Image
Digest
sha256:42b4b4fc9…
Size
163.6 MB
Last updated
over 1 year ago
docker pull feldhost/gitlab-runner-one:v17.11.1-docker-28.1.1-dm-0.16.2-gitlab.35-patched-one-6.8-1