使用 Ansible 将命令行参数传递给 Docker
Pass command line arguments to Docker with Ansible
我有一个 Java 套接字应用程序,它需要一个端口号作为 CLI 参数。在我的本地机器上,我可以 运行 通过:
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>"
有没有办法将端口作为 CLI 参数传递?还是有一种简单的方法可以解决这个问题?我已经考虑过上传新图片或使用 the command module,但似乎都不是正确的方法。
在 Ansible 的 Docker module. See passing extra args to docker: task 中不支持传递任意参数。
你不能使用shell模块来实现你想要的吗?
如果您可以更改图像,我建议您改用 environment vars。 docker 模块支持。
- name: Run server
docker:
name: <name>
image: <foo>/<bar>
state: reloaded
ports:
- "1111:1111"
links:
- "<link>"
env:
MY_PORT: 1111
您可以使用 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"]
我有一个 Java 套接字应用程序,它需要一个端口号作为 CLI 参数。在我的本地机器上,我可以 运行 通过:
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>"
有没有办法将端口作为 CLI 参数传递?还是有一种简单的方法可以解决这个问题?我已经考虑过上传新图片或使用 the command module,但似乎都不是正确的方法。
在 Ansible 的 Docker module. See passing extra args to docker: task 中不支持传递任意参数。
你不能使用shell模块来实现你想要的吗?
如果您可以更改图像,我建议您改用 environment vars。 docker 模块支持。
- name: Run server
docker:
name: <name>
image: <foo>/<bar>
state: reloaded
ports:
- "1111:1111"
links:
- "<link>"
env:
MY_PORT: 1111
您可以使用 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"]