Docker Images über CI bauen und in die Registry legen

Hi zusammen,
ich möchte Docker Images über die CI bauen und in die Container Registry meines Projektes ablegen. Obwohl sich verschiedene Skripte mit Lösungen finden, schaffe ich es nicht ein Image zu bauen. Diese schlagen immer fehl mit „Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?“

Gibt es hierfür eine Anleitung ? Welche Einstellungen muss man unabhängig der Yaml vornehmen?

Im Forum bin ich bereits auf den Artikel (welcher veraltet aussieht) Docker Images in CI bauen und in Registry pushen gestoßen. Allerdings wird die Lösung um Kaniko nicht mehr maintained bzw. seitens GitLab nicht beworben. Von der Lösung mit Dind wird aus Sicherheitsbedenken abgeraten (Docker-in-Docker in Gitlab Runners | by Tony Wooster | Medium).

Eine entsprechendes Hello-World sieht bei mir derzeit so aus:

build:
  stage: build
  image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/docker:20.10.16
  services:
    - name: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/docker:18.09.7-dind
      alias: docker
  script:
    - echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY -u $CI_REGISTRY_USER --password-stdin
    - docker build -t $CI_REGISTRY/hello_world:latest .
    - docker push $CI_REGISTRY/hello_world:latest
1 „Gefällt mir“

docker-in-docker (dind) wird von openCode nicht unterstützt.

Bisher war die Variante mit kaniko als Container Buildtool der Weg, um unter openCode Images zu bauen.

Aber seit kurzem wird kaniko nicht mehr von GitLab unterstützt, da kaniko nicht mehr aktiv gepflegt wird: Use kaniko to build Docker images (removed) | GitLab Docs

@oc000037236425 - Siehe Fragen unten:

Wie ist der gedachte Weg, um Container Images zu bauen? Ich denke, man wird in Fällen wie dagger.io nicht um den privilegierten Build von Container Images herumkommen. Der docker executor von dagger.io benötigt im dargestellten Beispiel (GitLab CI | Dagger) ebenfalls dind.

Für „normale“ Container Images: Was ist die Alternative zu kaniko? buildah?

1 „Gefällt mir“

Hallo @oc000037236425 - Gibt es dazu einen Stand bezüglich dieser Funktionen?