问题
使用Ansible docker_compose
模块,是否可以在不启动服务的情况下执行docker-compose pull
和/或docker-compose build
?
我已尝试过什么?
我尝试过:
- name: Build & pull services
become: yes
docker_compose:
project_src: "{{ installation_path }}"
build: yes
state: present
stopped: yes
但是这似乎也会启动服务(即使我设置了 stopped: yes
)。
使用情况
实际情况是启动服务会导致端口与现有进程的冲突。所以想法是:
- 停止冲突进程
- 启动Docker服务
问题在于其中一个进程是解析DNS查询的进程,因此停止进程并启动Docker服务会尝试从Docker注册表中获取Docker镜像,从而导致DNS解析错误。
我的想法是:
- 拉取每个必要的镜像
- 停止冲突进程
- 启动Docker服务
pull: yes
和recreate: never
(文档似乎暗示有时会在构建后重新启动和重新创建容器)。 - Shoe