In Ubuntu from 19.04 to 20.04, the GitLab Runner installer doesn't work completely. After installed by apt
, you often have to do the post-installation process manually, running /usr/lib/gitlab-runner/mk-prebuilt-images.sh
to build some Docker image, but fail at this step.
Here are step you need to do, to successfully build that Docker image (assumed that you already installed Docker).
First, find a Debian repository mirror near to you. I'm in Viet Nam, so the mirror I chose is http://opensource.xtdv.net/debian/.
Second, open file for editing, find these lines:
cdebootstrap -v \ --flavour=minimal \ --exclude="dmsetup,systemd-sysv,systemd,udev" \ --include="bash,ca-certificates,git,netcat-traditional" \ stable ./debian-minbase \
and add that mirror URL after "./debian-minbase". It becomes:
cdebootstrap -v \ --flavour=minimal \ --exclude="dmsetup,systemd-sysv,systemd,udev" \ --include="bash,ca-certificates,git,netcat-traditional" \ stable ./debian-minbase http://opensource.xtdv.net/debian/ \
You also have to delete the backslash ("") at the end of line, if later you see this error:
awk: cmd. line:1: warning: regexp escape sequence `\ ' is not a known regexp operator
Third, download the latest version of the two packages libdebian-installer-extra4, libdebian-installer4 from Debian repository. For example, at the time of my writing, those files can be found in the XTDV mirror at:
http://opensource.xtdv.net/debian/pool/main/libd/libdebian-installer/libdebian-installer4_0.121_amd64.deb
http://opensource.xtdv.net/debian/pool/main/libd/libdebian-installer/libdebian-installer-extra4_0.121_amd64.deb
We will install those *.deb files with dpkg -i
command.
Here are the commands to do it quickly (copy/paste):
$ cd /tmp/
$ wget http://opensource.xtdv.net/debian/pool/main/libd/libdebian-installer/libdebian-installer4_0.120_amd64.deb
$ wget http://opensource.xtdv.net/debian/pool/main/libd/libdebian-installer/libdebian-installer-extra4_0.120_amd64.deb
$ sudo dpkg -i *.deb
After that, we run the GitLab's mk-prebuilt-images.sh
script again. Now it is successful:
$ sudo /usr/lib/gitlab-runner/mk-prebuilt-images.sh I: Generating GitLab Runner Docker image. This may take a while... I: cdebootstrap; saving build log to /var/cache/gitlab-runner/cdebootstrap.log / 100 % 53,3 MiB / 197,4 MiB = 0,270 6,9 MiB/s 0:28 '/usr/bin/gitlab-runner-helper' -> './gitlab-runner-helper' '/usr/lib/gitlab-runner/gitlab-runner-build' -> './gitlab-runner-build' '/usr/lib/gitlab-runner/gitlab-runner-cache' -> './gitlab-runner-cache' '/usr/lib/gitlab-runner/gitlab-runner-service' -> './gitlab-runner-service' '/usr/lib/gitlab-runner/Dockerfile' -> './Dockerfile' Sending build context to Docker daemon 65.29MB daemon 557.1kB Step 1/3 : FROM scratch ---> Step 2/3 : ADD stable.tar.xz / ---> 8770ce53ba90 Step 3/3 : COPY gitlab* /usr/bin/ ---> 16eb39566cb1 Successfully built 16eb39566cb1 Successfully tagged gitlab-runner-helper:11.2.0 I: Packing image into /var/lib/gitlab-runner/gitlab-runner-helper.tar.xz c73d4848c4fff6c68559f3bcf6afd3e0338a7be078226a9cefb8562635ad5831 100 % 46,2 MiB / 206,3 MiB = 0,224 2,0 MiB/s 1:41 gitlab-runner-helper-11.2.0 Untagged: gitlab-runner-helper:11.2.0 Deleted: sha256:16eb39566cb1a7831f65022eb279825da5369c2410e9fff5af2a3e90a187f95c Deleted: sha256:a6fc8fe2e360618e6f9562efc8be9d69ab9abf0fdd0a0299463f8651cc9c4da3 Deleted: sha256:8770ce53ba90689c94d61f2543f7a375c05678d48986c1ced354f3de074b6d93 Deleted: sha256:7b9a74a902cafe5ee188d074c8010e9c66a895f4f06deb9b05d1c79a79f6caf3