如何在docker-compose中将不同的命令行参数传递给不同的副本?

js81xvg6  于 2022-11-28  发布在  Docker
关注(0)|答案(1)|浏览(178)

我有同一映像的多个副本,但我希望将不同的命令行参数传递给每个副本,换句话说,我希望类似于以下内容:

version: "3.3"
services:
      mycontainer:
        build: .
        image: MyImage
        deploy:
          replicas: 3
        command:
          - arg1 arg2 //container1 args 
          - arg3 arg4 //container2 args
          - arg4 arg5 //container3 args

但是这不起作用,所有的行都是第一个容器的参数。我怎么解决这个问题?
ps:MyImage有一个入口点,它是一个shell脚本,我需要向它传递命令行

kx7yvsdv

kx7yvsdv1#

目前在docker-compose中还没有类似的for循环,但最新版本的docker-compose支持新的yaml特性archor,它可以保存类型,不需要重复一些部分。
注意:如果要增加副本,则必须添加更多服务。

version: "3.9"

services:
    mycontainer1: &base
      build: .
      image: MyImage
      command:
        - arg1 arg2 //container1 args

    mycontainer2:
      <<: *base
      command:
        - arg3 arg4 //container2 args

    mycontainer3:
      <<: *base
      command:
        - arg5 arg6 //container3 args

相关问题