我目前正在使用Ansible管理我的Docker服务.图像由Docker Compose文件管理,该文件位于/ opt / ipaccess / docker /中.
我的更新过程如下:
>停止服务
docker_service: project_src=/opt/ipaccess/docker/ state=absent
>上传新的docker镜像并加载它们
>启动服务
docker_service: project_src=/opt/ipaccess/docker/ state=present
我正在寻找的是一种只停止/启动我上传的内容的方式(我知道因为受影响的服务在剧本环境中已知).
我已经在线阅读了这些文档,但目前尚不清楚如何告诉docker_service模块只停止/启动特定服务.
最佳答案 免责声明:这是未经测试的,似乎没有记录.
看看文档似乎没有办法做到这一点.但是,如果我们查看code for the docker_service module(特别是重启命令cmd_restart),它看起来需要一个服务列表或一个假值(falsey值导致它重新启动所有服务).此命令仅由cmd_up函数调用,因此我们也需要state = present.
基于此,我希望:
docker_service:
project_src: /opt/ipaccess/docker/
services:
- db
- web
- myotherservice
restarted: true
state: present
仅重新启动列出的服务.
如果这对您有用,请告诉我,如果是这样,我们应该通过PR更新这些文档.如果没有发布您的错误,我们可以从那里工作.