Ansible并重新启动docker服务

我目前正在使用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更新这些文档.如果没有发布您的错误,我们可以从那里工作.

点赞