2016-11-29 1 views
4

В настоящее время я управляю своими услугами Docker с помощью Ansible. Изображения управляются файлом Docker Compose, который находится в /opt/ipaccess/docker/.Несущий и перезапуск службы докеров

процесс Мое обновление выглядит следующим образом:

  1. Stop услуги

    docker_service: project_src=/opt/ipaccess/docker/ state=absent 
    
  2. Загрузить новый Докер изображений и загружать их

  3. Начало услуги

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

То, что я ищу, - это способ только остановить/запустить то, что я загрузил (это я знаю, поскольку оказанные услуги известны в контексте плей-листа).

Я читал документацию в Интернете, но неясно, как сообщить модулю docker_service только остановить/запустить определенную службу.

ответ

1

Отказ от ответственности: Это не проверено и, кажется, недокументировано.

Глядя на документы, это кажется как нет способа сделать это. Однако, если мы посмотрим на code for the docker_service module (в частности, команда перезагрузки cmd_restart), похоже, что он принимает список служб или значение ложности (значение false, заставляющее перезапускать все службы). Эта команда вызывается только функцией cmd_up, поэтому нам нужно также state=present.

Так на основе этого, я бы ожидать:

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

Для перезапуска только перечисленных услуг.

Сообщите мне, если это сработает для вас, если это так, мы должны обновить эти документы с помощью PR. Если вы не опубликуете свою ошибку, и мы можем работать оттуда.

+0

Это прекрасно работает –