如何使用Docker-compose编写Ansible playbook

9
请帮忙,我有以下的docker-compose文件,并想编写一个Ansible playbook,在本地主机和远程目标上运行该docker-compose文件。
   version: '2.0'

services:
weather-backend:
  build: ./backend
  volumes:    #map backend dir and package inside container
    - './backend/:/usr/src/'
    - './backend/package.json:/usr/src/package.json'
  #ports:
 #  - "9000:9000" #expose backend port - Host:container
  ports:
     - "9000:9000"
  command: npm start


weather-frontend:
  build: ./frontend
  depends_on:
    - weather-backend
  volumes:
    - './frontend/:/usr/src/'
    - '/usr/src/node_modules'
  ports:
    - "8000:8000" #expose ports -Host:container
  environment:
    NODE_ENV: "development"
1个回答

19
自 Ansible 2.1 起,您可以查看 docker_compose 模块,该模块可以直接读取 docker-compose.yml 文件。
播放簿任务:
- name: run the service defined in my_project's docker-compose.yml
  docker_compose:
    project_src: /path/to/my_project

1
这将执行在运行Ansible的主机上存在的docker-compose,并与目标主机上的docker API通信。如果您想直接在目标主机上执行docker-compose,则需要另外的解决方案。 - emi
1
@emi 我同意:我认为 https://docs.ansible.com/ansible/latest/collections/community/docker/docker_compose_module.html#parameter-docker_host 意味着本地的 Docker Compose 可以与远程 Docker 通信。 - VonC

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