1

私は、GitLab CIランナーを使用してdocker-compose経由で4コンテナアプリを展開する自動配置を設定しようとしています。 docker pullコマンドを使用してコンテナイメージをプルダウンできますが、完全なdocker-composeスクリプトを実行するには、Google Compute Engineインスタンスに接続する方法が固まっています。Dockerを使用してGitLab CIからGoogle Container Engineインスタンスにどのように配備しますか?

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

しかし、私の.gitlab-ci.ymlスクリプトが利用可能docker-machineを持っていない:

は一般的に、私のローカルマシンから、私のような何かを実行します。

  1. 私は私の .gitlab-ci.ymlファイル内script部を介してdocker-machineをインストールする必要がありますか?
  2. ごとにインスタンスをプロビジョニングするにはどうすればよいですか?通常、私のローカルホストからは を実行してを実行し、上記のeval コマンドを使用してインスタンスに再接続します。しかし、これはどのようにして CIで動作しますか?

は、ここに私の.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

[このリンク](http://totallyon.me/2016/09/22/running-gitlab-ci-runner-in-gce/)が役立つかもしれません。 [Cloud Launcher](https://cloud.google.com/launcher/)には、あらかじめ設定されたGitLabバージョンもあります。 – Carlos

答えて

0

ないあなたは、この場合のためにドッカマシンを必要とするものを確認してください。あなたはそれを取り除きたいかもしれません。

しかし、戻ってあなたの質問に行き、あなたが使用しているドッキングウィンドウの画像は、ドッキングウィンドウマシン、またドッキングウィンドウ・コンどちらも付属していません:

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

ですから、新しいを作成する必要がありますこれらの2つがインストールされているイメージ(または既存のものを見つける)。だから、.gitlab-ci.ymlで 、代わりのimage: docker:latestは、あなたが多分GCEでそれを使用するためにGitLab CIランナーにドッカ・マシンをインストールする必要がimage: mydocker

+0

最終的に私は 'docker-machine'を使用してGoogle Compute Engineインスタンスに接続し、' eval $(docker-machine env <インスタンス名>) 'コマンドで自分のアプリケーションを配備したいと考えています。 –

関連する問題