1

Ich versuche, die automatisierte Bereitstellung mit einem GitLab CI-Runner einzurichten, um unsere 4-Container-App über docker-compose bereitzustellen. Ich kann die Containerbilder mit den Befehlen docker pull herunterziehen, aber ich muss wissen, wie ich mich mit der Google Compute Engine-Instanz verbinden kann, um das vollständige Skript docker-compose auszuführen.Wie kann ich mithilfe von Docker von GitLab CI zur Google Container Engine-Instanz bereitstellen?

Regel von meinem lokalen Rechner, laufe ich so etwas wie:

eval $(docker-machine env <machine-instance>) 
docker-compose up -d 

Aber mein .gitlab-ci.yml Skript hat nicht docker-machine verfügbar.

  1. Muss ich docker-machine über den script Abschnitt in meinem .gitlab-ci.yml Datei installieren?
  2. Wie stelle ich die Instanz ohne bereit, um jedes Mal ein neues zu erstellen? Normalerweise würde ich von meinem lokalen Host aus einmal docker-machine create ... ausführen und dann einfach den obigen Befehl eval verwenden, um die Verbindung zur Instanz wiederherzustellen. Aber wie würde das funktionieren mit CI?

Hier ist eine Probe meiner .gitlab-ci.yml:

deploy staging: 
    image: docker:latest 
    services: 
     - docker:dind 
    environment: staging 
    stage: deploy 
    before_script: 
     - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN my-registry.githost.io 
    script: 
     - docker pull my-registry.githost.io/group/project1:develop 
     - docker pull my-registry.githost.io/group/project2:develop 
     - docker pull my-registry.githost.io/group/project3:develop 
     - docker pull my-registry.githost.io/group/project4:develop 
     - docker-machine ls 
+0

[Dieser Link] (http://totallyon.me/2016/09/22/running-gitlab-ci-runner-in-gce/) könnte helfen. [Cloud Launcher] (https://cloud.google.com/launcher/) enthält außerdem eine vorkonfigurierte Version von GitLab. – Carlos

Antwort

0

Nicht sicher, was Sie in diesem Fall Docker-Maschine benötigen. Vielleicht möchten Sie es loswerden.

Aber zu Ihrer Frage zurück zu gehen, die Docker Bild Sie verwenden nicht kommt weder mit Docker-Maschine, noch Docker-compose:

https://github.com/docker-library/docker/blob/36e2107fb879d5d5c3dbb5d8d93aeef0a2d45ac8/1.12/Dockerfile

So benötigen Sie einen neuen erstellen Bild (oder finden Sie ein vorhandenes), das mit diesen zwei installiert kommt. So in der .gitlab-ci.yml, statt image: docker:latest, es so etwas wie image: mydocker

+0

Schließlich möchte ich 'docker-machine' verwenden, um eine Verbindung zu meiner Google Compute Engine-Instanz herzustellen, um meine App über den folgenden Befehl zu implementieren:' eval $ (docker-machine env ) '. –

Verwandte Themen