How to run docker-compose commands with ansible?

Viewed 24924

In ansible playbook I need to run docker-compose commands. How can I do it? I need to run command: docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

2 Answers

You should copy your Docker Compose files and use docker_compose module such as:

- 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
  community.docker.docker_compose:
    project_src: /somewhere/yourproject
    files:
    - docker-compose.yml
    - docker-compose.prod.yml

At the end I decided to use to use shell module. I think @pierre-b answer is more correct but anyway:

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