ansible - 在 Ansible playbook 中执行 docker-compose
问题描述
我有一个ansible-playbook.yml
文件,我需要从内部执行docker-compose
:
- name: copy sql schema
hosts: test-mysql
gather_facts: no
tasks:
- name: Docker compose
command: docker-compose -f {{ name }}_compose.yml up -d
但我总是得到错误:
fatal: [test-mysql]: FAILED! => {"changed": false, "cmd": "docker-compose Mick_compose.yml up -d", "failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}
有小费吗 ?谢谢
使用命令:-名称:确保 compose 服务已启动:
- name: Make sure compose service is up
docker_compose:
^ here
解决方案
[Errno 2] 没有这样的文件或目录
实际上,Mick_compose.yml
在启动命令的默认目录中没有这样的文件或目录。为了解决这个问题,我可以向您展示如何将命令模块中的 dir 更改为保存文件的正确模块。
但是我会让你自己发现(如果你真的想在这个解释之后这样做),因为当现有的 ansible 模块已经在做你需要的事情时,你不应该直接运行命令
- name: Make sure compose service is up
docker_compose:
project_src: /path/to/your/compose/project
files:
- "{{ name }}_compose.yml"
state: present
这只是为了让您走上正轨,请查看上面的模块文档链接以获取有关可能参数的更多信息。
推荐阅读
- xamarin.ios - 某些图像未出现在图像视图控件 xamarin.ios 上
- shell - '在使用 azure 时在 powershell 脚本中是什么意思?
- oracle - 如何在 8.30am、8.30-9am 和 9am 之后获取员工打卡数据
- sql - 在sql中获取由多个字符分隔的子字符串
- mysql - 在不使用联合的情况下组合两个查询
- android - Tensorflow Lite:没有名为 tf.contrib.lite 的模块
- regex - 如何解决此文本框模式
- jquery - 带有一个单选框和多个复选框的按钮组
- php - 如何在没有锚标记的不同页面中回显 php 变量(在一个页面中定义)
- haskell - 如何为 Streaming.Prelude.takeWhile 编写谓词