2016-11-30 54 views
1

可以使用concourse的docker资源来获取要在docker中使用的容器组合吗?目前,我只是从我的私人码头注册中心获取集成测试的容器,但是这样做的连接/资源不会显示在共享界面中。有任何想法吗?使用Concourse的docker资源来获取要在docker中使用的容器组合

这是目前我的任务:正在建造并上传到一个私人码头工人登记在管道上一步

--- 
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关于如何在码头大厅中运行码头工人 - 您最终做的是使用码头工人码头图像与预先安装的码头工具,然后加载其他图像。使用concourse预取这些图像,然后在本地缓存它们有助于提高性能。

一个诀窍是,将docker撰写文件放入提取的代码库中,而不是在大厅配置中更容易。

缩写广场阳明:

- 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 
相关问题