将泊坞窗图像旋转到多个容器中

时间:2018-04-24 06:31:22

标签: docker containers circleci

我正在使用docker为LAMP应用程序构建自动化CI / CD管道。

我希望将图像分成5个容器,以便5个不同的开发人员可以处理他们的代码。可以这样吗?我尝试使用副本,但它没有成功。

version: '3'
services:
  web:
   build: .
   ports:
    - "8080:80"#    
deploy:
      mode: replicated
      replicas: 4

我得到的错误:

  

:#!/ bin / bash -eo pipefail docker-compose up错误:撰写文件   './docker-compose.yml'无效,因为:其他属性是   不允许(“作业”是意外的)您可能会看到此错误   因为您使用的是错误的Compose文件版本。指定一个   支持的版本(例如“2.2”或“3.3”)并提供您的服务   services键下的定义,或省略版本密钥和位置   您的服务定义在文件的根目录下使用版本1.对于   有关Compose文件格式版本的更多信息,请参阅   docs.docker.com/compose/compose-file退出代码1 -

另外,从不同的容器,开发人员可以推送,拉取和提交git吗?如果重建或运行图像,在一个容器中完成的工作是否会丢失?

在构建此管道时,我应该注意什么?

1 个答案:

答案 0 :(得分:1)

首先,使用带有Dockerfile的{​​{1}}单独构建您的图片,然后使用以下撰写文件docker build -t <image name>:<version/tag> .来部署您的图片。

docker stack deploy

version: '3' services: web: image: <image name>:<version/tag> ports: - "8080:80"# deploy: mode: replicated replicas: 4 属性应该在服务中,因为它描述了服务必须具有的副本数。它不是像deploy这样的全局属性。这似乎是你的compose文件中唯一的问题,services在从管道运行时抱怨这个问题。

更新

您无法使用单个docker compose up命令运行多个副本。要从docker-compose运行多个副本,请在您的计算机上执行compose.yml来创建一个群。

之后,只需将docker swarm init替换为docker-compose up即可。 docker stack deploy <stack name>只是忽略了docker-compose属性。

有关deploydocker-compose up之间差异的详细信息,请参阅此文:https://nickjanetakis.com/blog/docker-tip-23-docker-compose-vs-docker-stack