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.
- Muss ich
docker-machine
über denscript
Abschnitt in meinem.gitlab-ci.yml
Datei installieren? - 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 Befehleval
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
[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