gitlab.com CI docker-compose

我已经dockerised我的应用程序,并使用docker docker-compose在本地运行它。 我想使用相同的docker-compose命令,我使用本地来构build和testing我的应用程序在CI亚军,但我似乎无法find任何文件如何?

我正在使用gitlab.com,有文件说你应该只使用docker镜像。 只有docker-compose似乎不再有标准图像…

使用docker-compose和GitLab CI的最佳方法是什么?

编辑:用例

.gitlab-ci.yml

 image: docker:latest variables: DOCKER_DRIVER: overlay WORKER_TEST_IMAGE: registry.gitlab.com/org/project/worker:$CI_COMMIT_REF_NAME WORKER_RELEASE_IMAGE: registry.gitlab.com/org/project/worker:latest services: - postgres:9.6.3 - docker:dind stages: - build - test - release - deploy before_script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY build_worker: stage: build script: - docker build --pull -t $WORKER_TEST_IMAGE . - docker push $WORKER_TEST_IMAGE test_worker: stage: test script: - docker pull $WORKER_TEST_IMAGE # I need a way to connect the postgres service to the image I'm # trying to run. Which doesn't seem possible? # - docker-compose run worker dockerize -wait tcp://postgres:5432 nosetests - docker run $WORKER_TEST_IMAGE dockerize -wait tcp://postgres:5432 nosetests ... 

我觉得Gitlab CI让我重新执行docker-compose,因为他们不支持它?

Gitlab CI有自己的docker语法,不支持docker-compose。 因此,如果您使用名为dind(docker的docker)的机制,docker-compose将只能工作,您必须将主机系统的docker套接字安装到您的CI运行器中。 迟早你会发现这种方法有严重的局限性,可能引入更多的跑步者configuration,缺乏文档。

虽然可能,但你应该坚持官方的gitlab方式。 仔细阅读https://docs.gitlab.com/ce/ci/docker/using_docker_images.html ,您将能够以与docker-compose类似的方式轻松使用多个docker容器。