2017-09-05 5 views
0

Ich mag würde Docker Bilder auf meinem lokalen Nexus Repo mit Gitlab CIbauen und Push-Docker Bilder mit Gitlab CI

dies ist meine aktuelle CI-Datei erstellen und drücken:

image: docker:latest 

services: 
    - docker:dind 

before_script: 
    - docker info 
    - docker login -u some_user -p nexus-rfit some_host 

stages: 
    - build 

build-deploy-ubuntu-image: 
    stage: build 
    script: 
    - docker build -t some_host/dev-image:ubuntu ./ubuntu/ 
    - docker push some_host/dev-image:ubuntu 
    only: 
    - master 
    when: manual 

hat auch einen Job für einen alpin docker, aber wenn ich irgendetwas davon ausgeführt werden soll ist es mit dem folgenden Fehler fehlschlagen:

Checking out 13102ac4 as master... Skipping Git submodules setup $ docker info Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? ERROR: Job failed: exit code 1

So technisch der docker Daemon im Bild nicht ausgeführt wird, aber ich habe keine Ahnung, warum?

Antwort

2

GitLab-Leute haben eine Referenz in ihren Dokumenten über die Verwendung von docker-build in Docker-basierten Jobs: https://docs.gitlab.com/ce/ci/docker/using_docker_build.html#use-docker-in-docker-executor. Da du scheinbar alles an seinem Platz hast (d. H. Das richtige Bild für den Job und den zusätzlichen Service docker:dind), ist es höchstwahrscheinlich ein Runner-Config-Problem.

Wenn man sich den zweiten Schritt in der Dokumentation:

  1. Register GitLab Runner from the command line to use docker and privileged mode:

    [...]

    Notice that it's using the privileged mode to start the build and service containers. If you want to use docker-in-docker mode, you always have to use privileged = true in your Docker containers.

Wahrscheinlich ein Läufer Sie verwenden, dass nicht im privilegierten Modus konfiguriert wurde und daher nicht richtig die Docker Daemon innerhalb laufen kann. Sie können die /etc/gitlab-runner/config.toml auf Ihrem registrierten Läufer direkt bearbeiten, um diese Option hinzuzufügen.

(Auch an den Speichertreiber Sie Ihre Läufer wählen/im Zusammenhang einige weitere Informationen über die Leistung auf die Dokumentation auf dem Abschnitt lesen unterstützt, wenn Dind verwenden)