2016-11-29 125 views
4

我目前使用Ansible管理我的Docker服务。这些图像由/opt/ipaccess/docker/中的Docker Compose文件管理。Ansible并重新启动码头服务

我的更新过程如下:

  1. 停止服务

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

  3. 开始服务

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

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

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

回答

1

声明:这是未经测试的,似乎没有证件。

看着文档它似乎像没有办法做到这一点。但是,如果我们查看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。如果没有发布你的错误,我们可以从那里工作。

+0

这完美的作品 –