Ansible并重新启动Docker服务

我目前正在使用Ansiblepipe理我的Docker服务。 这些图像由/opt/ipaccess/docker/的Docker Compose文件pipe理。

我的更新过程如下:

  1. 停止服务

     docker_service: project_src=/opt/ipaccess/docker/ state=absent 
  2. 上传新的docker图像并加载它们

  3. 开始服务

     docker_service: project_src=/opt/ipaccess/docker/ state=present 

我正在寻找的是一种只停止/启动我已上传的内容的方法(我知道这是受影响的服务在Playbook上下文中已知的)。

我已经在线阅读了文档,但不清楚如何告诉docker_service模块只停止/启动一个特定的服务。

免责声明:这是未经testing,似乎是无证的。

看文档, 似乎没有办法做到这一点。 但是,如果我们查看docker_service模块的代码 (特别是重新启动命令cmd_restart ),它看起来像是一个服务列表或一个错误的值(falsey值导致它重新启动所有服务)。 这个命令只能由cmd_up函数调用,所以我们也需要state=present

基于此,我期望:

 docker_service: project_src: /opt/ipaccess/docker/ services: - db - web - myotherservice restarted: true state: present 

仅重新启动列出的服务。

让我知道如果这对你有用,如果是的话,我们应该得到这些文件更新与公关。 如果不是发布你的错误,我们可以从那里工作。