Die ist eine Anleitung für mich da ich ja nicht jeden Tag den Server wechsle.

Eigentlich dient dies nur dazu um eine ZIP Datei aus dem privaten Gitlab repository für ein Release/Tag zu erstellen die ich dann für den internen Updater nutzen kann.

Als erstes erstelle ich eine lokale config Datei für den Container in /srv/gitlab/runner/

mkdir -p /srv/gitlab/runner
nano /srv/gitlab/runner/config.toml

und kopiere den Inhalt vom alten Server hinein und starte den Container wie folgt

docker run -d --name gitlab-runner --restart always -v /srv/gitlab/runner:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest

Docker Image

Für meine Zwecke habe ich ein eigenes Docker Image mit den von mir benötigten Tools basierend auf OpenSUSE erstellt.
Würde ich den Runner ohne dieses Image erstellt zu haben ausführen, würde er fehlschlagen da das Image pmj/gitlab nich öffentlich verfügbar ist; ich muss es erst lokal erstellen.

Dazu erstelle ich folgendes Dockerfile in /srv/gitlab/docker/pmj-deploy

mkdir -p /srv/gitlab/docker/pmj-deploy
nano /srv/gitlab/docker/pmj-deploy/Dockerfile
#Download base image opensuse
FROM opensuse/leap:latest
LABEL maintainer="PMJ "

#Install packages
RUN zypper --non-interactive update && zypper --non-interactive install \
    composer \
	git \
	openssh \
	rsync \
    unzip \
	zip

#Create user
RUN useradd -U -m -c "PMJ" pmj
USER pmj
WORKDIR /home/pmj

Nun erstelle ich das Image mit

cd /srv/gitlab/docker/pmj-deploy
docker build . -t pmj/gitlab