【问题标题】:How to run docker-compose commands with ansible?如何使用 ansible 运行 docker-compose 命令?
【发布时间】:2020-10-08 15:10:07
【问题描述】:

在 ansible playbook 中,我需要运行 docker-compose 命令。我该怎么做?我需要运行命令:docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

【问题讨论】:

标签: docker deployment docker-compose ansible


【解决方案1】:

最后我决定使用 shell 模块。我认为@pierre-b 的答案更正确,但无论如何:

- name: Run container
  become: True
  shell:
    cmd: "docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d"
    chdir: /mydir/

【讨论】:

  • 当有模块为您完成工作时,您绝对应该避免使用 shell。现在您还必须管理幂等性(由模块自动完成)。
  • 谢谢,您的回答也是有效的,但正如@Zeitounator 指出的那样,最好尽可能使用 Ansible 模块并避免使用 shell 命令。为什么这个模块不适合你?
  • 对模块的要求太多。不过下次可能会用到,看起来很酷。
【解决方案2】:

您应该复制您的 Docker Compose 文件并使用 docker_compose 模块,例如:

- name: copy Docker Compose files
  copy:
    src: files/{{ item }}
    dest: /somewhere/yourproject/{{ item }}
  loop:
  - docker-compose.yml
  - docker-compose.prod.yml

# use files parameter to use multiple docker-compose.yml files
- name: deploy Docker Compose stack
  docker_compose:
    project_src: /somewhere/yourproject
    files:
    - docker-compose.yml
    - docker-compose.prod.yml

【讨论】:

  • 哦,我看到要使用docker_compose我需要安装很多依赖项。感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-24
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多