Sign inSign up

feldhost/gitlab-runner-one

By feldhost

•Updated over 1 year ago

Gitlab Runner with OpenNebula docker machine driver

Image
Developer tools
0

1.0K

feldhost/gitlab-runner-one repository overview

Based on official gitlab/gitlab-runner with added:

  • docker client
  • docker-compose
  • docker-machine
  • docker-machine-driver-opennebula

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 "$@"

Tag summary

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