Docker build


Docker build

Building container image uses services

Use docker:dind for containerized Docker daemon

The GitLab runner must be configured to run privileged container

Alternatives: Rootless and or daeamonless builds using kaniko , podman/buildah , BuildKit


Hands-On

Package binary in container image

  1. Add Dockerfile to repository
  2. Create new stage called package after test
  3. Add job package in stage package

     package:
       image: docker:20.10.18
       stage: package
       script:
       - docker build --tag hello .
    

  4. Add service to job package

     package:
       services:
       - name: docker:20.10.18-dind
         command: [ "dockerd", "--host", "tcp://0.0.0.0:2375" ]
       #...
    

(See new .gitlab-ci.yml)