【问题标题】:Error running docker-compose command via Ansible playbook通过 Ansible playbook 运行 docker-compose 命令时出错
【发布时间】:2021-10-18 03:39:08
【问题描述】:

我在尝试在 ansible playbook 中执行 docker-compose 时遇到错误。

我在 Mac OSX 上运行,但目标节点是 AWS ec2 (Ubuntu 20.04)

在 Ubuntu 20.04 上,我安装了以下内容

sudo apt-get update -y && sudo apt-get install git python3 python3-setuptools 
python3-pip software-properties-common docker docker.io unzip acl -y
sudo apt-add-repository -y --update ppa:ansible/ansible
sudo apt-get install ansible -y
sudo apt install python3-pip -y
sudo apt-get install python3-docker
pip3 install docker
pip3 install docker-compose

在main.yml中

 name: Run "docker-compose up"
  community.docker.docker_compose:
    project_src: /data
    project_name: test
  register: output

我收到以下错误

fatal: [ndr2]: FAILED! => {"changed": false, "msg": "Unable to load docker-compose. Try `pip install docker-compose`. Error: Traceback (most recent call last):\n  File \"/tmp/ansible_community.docker.docker_compose_payload_566twi2g/ansible_community.docker.docker_compose_payload.zip/ansible_collections/community/docker/plugins/modules/docker_compose.py\", line 494, in <module>\nModuleNotFoundError: No module named 'compose'\n"}

感谢任何帮助。

【问题讨论】:

  • 它可能正在 AWS 主机上寻找 docker-compose
  • 我已经安装了 docker-compse。我在那个 SO 问题中看到了这个答案,但也没有用。
  • 您使用 Python3 解释器引导了 docker compose 安装。 Ansible 是否使用相同的 Python3 解释器在远程主机上执行其提供程序命令?
  • 我相信,在我的 hosts 文件中,我有 ansible_python_interpreter=/usr/bin/python3

标签: macos docker amazon-ec2 docker-compose ansible


【解决方案1】:

我必须在目标主机上运行sudo apt install docker-compose -y,而不是通过 pip3 安装 docker-compose。不知道为什么必须这样安装。

【讨论】:

    最近更新 更多