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

tom*_*ssi 5 ansible docker devops

我有一个Java套接字应用程序,需要端口号作为CLI参数.在我的本地机器上我可以通过以下方式运行:

docker run -d -p 1111:1111 --name <name> --link <link> <foo>/<bar> 1111
Run Code Online (Sandbox Code Playgroud)

问题是我在使用Ansible时没有找到传递端口号的解决方案(我有一个不同的任务拉动图像).当前任务:

- name: Run server
      docker:
          name: <name>
          image: <foo>/<bar>
          state: reloaded
          ports:
              - "1111:1111"
          links:
              - "<link>"
Run Code Online (Sandbox Code Playgroud)

有没有办法将端口作为CLI参数传递?或者有一个简单的方法来解决这个问题?我想上传新图像或使用命令模块,但似乎都不是正确的方法.

udo*_*dan 6

如果您可以更改图像,我建议改用环境变量。这是由 docker 模块支持的。

- name: Run server
  docker:
    name: <name>
    image: <foo>/<bar>
    state: reloaded
    ports:
      - "1111:1111"
    links:
      - "<link>"
    env:
      MY_PORT: 1111
Run Code Online (Sandbox Code Playgroud)


hel*_*loV 5

在Ansible的Docker模块中传递任意参数没有本机支持.请参阅将额外的args传递给docker:task.

你不能用shell模块来实现你想要的吗?