通过Ansible执行docker-compose pull

3

问题

使用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服务

文档中似乎有一个拉取选项。在这种情况下,您是否尝试删除“state”并设置“pull: yes”?https://docs.ansible.com/ansible/latest/modules/docker_compose_module.html#parameter-pull - Andy Shinn
@AndyShinn 是的。我也尝试过使用 pull: yesrecreate: never(文档似乎暗示有时会在构建后重新启动和重新创建容器)。 - Shoe
2个回答

1

0

现在正在运作。请看一下这个问题

      community.docker.docker_compose:
        project_src: src
        pull: true
        state: present


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接