docker-compose使用循环创建服务

vuv7lop3  于 2023-03-17  发布在  Docker
关注(0)|答案(2)|浏览(244)

是否可以使用docker-composite在循环中创建服务,而不是手动键入所有服务?(请参见下面的示例,其中创建了100个具有适当端口的工作者)

version: '3'
services:
  redis:
    image: redis
  worker1:
    build: .
    ports:
    - "5001:5001"
  worker2:
    build: .
    ports:
    - "5002:5002"
  worker3:
    build: .
    ports:
    - "5003:5003"

  ...

  worker100:
    build: .
    ports:
    - "5100:5100"
bzzcjhmw

bzzcjhmw1#

您可能可以使用--scale选项来执行此操作,因此如果您运行docker-compose up --scale worker=100,它应该完全按照您的要求执行操作。
documentation for docker-compose up对此进行引用,如下所示:

--scale SERVICE=NUM        Scale SERVICE to NUM instances. Overrides the
                           `scale` setting in the Compose file if present.
rqqzpn5f

rqqzpn5f2#

奇怪的是没有人提到它。你可以很容易地使用replicas future就像下面的例子一样创建你想要的复制,而不是for循环,这是非常有用的。

version: '3'
services:
  worker:
    image: dockersamples/examplevotingapp_worker
    networks:
      - frontend
      - backend
    deploy:
      mode: replicated
      replicas: 6

您还需要使用docker-compose --compatibility up来使Docker在不使用swarm的情况下接受部署节

相关问题