使用Ansible将命令行参数传递给Docker

9

我有一个需要在命令行中传入端口号的Java套接字应用程序。在我的本地机器上,我可以通过以下方式运行它:

docker run -d -p 1111:1111 --name <name> --link <link> <foo>/<bar> 1111

问题在于我还没有找到一种解决方案,可以在使用Ansible时传递端口号(我有一个不同的任务负责拉取镜像)。当前任务:
- name: Run server
      docker:
          name: <name>
          image: <foo>/<bar>
          state: reloaded
          ports:
              - "1111:1111"
          links:
              - "<link>"

有没有一种方法可以将端口作为命令行参数传递?或者有没有一种简单的方法来解决这个问题?我想过上传一个新镜像或使用命令模块, 但似乎都不是正确的方法。
3个回答

7

由于没有支持,我选择了命令模块,因为我不需要通过 shell 运行命令。我会接受这个答案,因为命令基本上就是 shell,只是没有 shell 支持 :) - tomtomssi

6
如果您可以更改图像,我建议使用环境变量。这是docker模块支持的。
- name: Run server
  docker:
    name: <name>
    image: <foo>/<bar>
    state: reloaded
    ports:
      - "1111:1111"
    links:
      - "<link>"
    env:
      MY_PORT: 1111

0
您可以使用“command”参数传递参数:
docker_container:
    name: myredis
    image: redis
    command: redis-server --appendonly yes

或者您可以使用 entrypoint 参数重写现有的入口点

docker_container:
    name: myjavascript
    image: theirjavascript
    entrypoint: ["node", "--max_old_space_size=4096", "dist/index.js", "start"]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接