使用Concourse的docker资源来获取要在docker compose中使用的容器

时间:2016-11-30 07:57:27

标签: docker docker-compose concourse

可以使用concourse的docker资源来获取在任务中的docker compose中使用的容器吗?目前我只是从我的私有docker注册表中获取集成测试的容器,但这样做的连接/资源不会显示在concourse 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使用正在构建的容器,并在管道的上一步中上传到私有docker注册表。

1 个答案:

答案 0 :(得分:3)

This repo关于如何在大厅中的docker中运行docker compose有一个很好的了解 - 你最终做的是使用docker图像和docker compose预安装,然后加载其他图像。使用concourse预取这些图像然后在本地缓存它们确实有助于提高性能。

一个技巧是将docker compose文件放在获取的代码库中更容易,而不是在concourse配置中。

缩写的大厅yml:

oout.writeObject(new BigInteger(Line));