2016-11-30 10 views
1

コンコースのドッキングリソースを使用して、ドッカーで使用するコンテナをフェッチすることはできますか?現在私の個人用ドッカーレジストリから統合テスト用のコンテナをフェッチしていますが、接続/リソースはコンテナUIに表示されません。何か案は?ここでコンコースのドッカーリソースを使用してドッカーで使用するコンテナを取得する

は、現在、私の仕事です:

--- 
platform: linux 
inputs: 
- name: devops-repo 
- name:client-repo 
params: 
    RUNNER_IMG: 
    CLIENT_IMG: 
    SERVER_IMG: 
run: 
    path: sh 
    args: 
    - -exc 
    - | 
    # "E2E testing:" 
     - | 
     # Export map the parameters to the dockerfile env. 
     export docker-registry-protractor=${RUNNER_IMG} 
     export docker-registry-client-dist=${CLIENT_IMG} 
     export docker-registry-server-dist=${SERVER_IMG} 

     export HOME=/protractor 
     # Move to the Protractor test project folder 
     mkdir $HOME 
     # Get the docker compose file: 
     cp devops-repo/my-pipeline/templates/e2e/docker-compose.yml $HOME/docker-compose.yml 
     # Get the tests: 
     cp client-repo/test/e2e/** $HOME 
     cd $HOME 

     # https://github.com/concourse/concourse/issues/324 

     # Spin up the stack as described in docker-compose: 
     docker daemon & 
     docker-compose up 

パイプラインの前のステップで構成され、民間のドッキングウィンドウのレジストリにアップロードされているDockerfileの使用コンテナ。

答えて

2

This repoは、ドッカーのコンコースをコンコースでどのように実行するかについての良い歩みを持っています - 最終的には、ドッカーの画像をドッカーで作成して使用して、他の画像を読み込みます。コンコースを使用してこれらのイメージをプリフェッチし、ローカルにキャッシュするとパフォーマンスが向上します。

実際には、ドッカーの作成ファイルをコンコースコンフィグではなく、フェッチされたコードリポジトリに配置する方が簡単です。

省略コンコースYML:

- name: integration 
    plan: 
     - aggregate: 
     - get: code-from-git-resource 
      params: {depth: 1} 
      passed: [unit-tests] 
      trigger: true 
     - get: redis-docker-image 
      params: {save: true} 
     - get: busybox-docker-image 
      params: {save: true} 
     - task: Run integration tests 
     privileged: true 
     config: 
      platform: linux 
      image_resource: 
      type: docker-image 
      source: 
       repository: amidos/dcind 
      inputs: 
      - name: code-from-git-resource 
      - name: redis-docker-image 
      - name: busybox-docker-image 
      run: 
      path: sh 
      args: 
       - -exc 
       - | 
       source /docker-lib.sh 
       start_docker 

       # Strictly speaking, preloading of images is not required. 
       # However you might want to do it for a couple of reasons: 
       # - If the image is from a private repository, it is much easier to let concourse pull it, 
       # and then pass it through to the task. 
       # - When the image is passed to the task, Concourse can often get the image from its cache. 
       docker load -i redis-docker-image/image 
       docker tag "$(cat redis-docker-image/image-id)" "$(cat redis-docker-image/repository):$(cat redis-docker-image/tag)" 

       docker load -i busybox-docker-image/image 
       docker tag "$(cat busybox-docker-image/image-id)" "$(cat busybox-docker-image/repository):$(cat busybox-docker-image/tag)" 

       # Run the tests container and its dependencies. 
       docker-compose -f code-from-git-resource/example/integration.yml run tests 
関連する問題