问题描述
我一直在尝试在 Redhat 7 上安装 AWX,但出现以下错误,我环顾四周,看到了一些卸载和安装 docker-compose 的建议,尝试了我能做的一切,但没有任何效果。
TASK [local_docker : Run migrations in task container] *************************************************************
fatal: [localhost]: Failed! => {"changed": true,"cmd": "docker-compose run --rm --service-ports task awx-manage migrate --no-input","delta": "0:00:00.003315","end": "2021-02-02 00:25:41.803121","msg": "non-zero return code","rc": 127,"start": "2021-02-02 00:25:41.799806","stderr": "/bin/sh: docker-compose: command not found","stderr_lines": ["/bin/sh: docker-compose: command not found"],"stdout": "","stdout_lines": []}
PLAY RECAP *********************************************************************************************************
localhost : ok=15 changed=3 unreachable=0 Failed=1 skipped=72 rescued=0 ignored=1
这有点奇怪,我尝试运行 docker-compose -v 并工作,但是当我执行 sudo docker-compose 时它不起作用
$ docker-compose --version
docker-compose version 1.24.0,build 0aa59064
$ sudo docker-compose --version
sudo: docker-compose: command not found
你看到它在没有 sudo 的情况下工作正常,我不知道这是否与我在安装 awx 时看到的错误有关。
解决方法
移动你复制docker-compose二进制文件做/usr/local/bin,这个目录在普通用户和超级用户的路径上。
,我在 stackoverflow 中查看了其他类似的问题,并为 Redhat 做了同样的事情,它奏效了 :)
以下是我解决此问题的方法:请参阅 Docker Compose 文档
sudo curl -L https://github.com/d`ocker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose`
sudo chmod +x /usr/local/bin/docker-compose
执行 curl 命令后,它会将 docker-compose 放入
/usr/local/bin
不在 PATH 上。要修复它,请创建一个符号链接:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
现在如果你这样做:docker-compose --version
你会看到 docker-compose 现在在 PATH 上
最后再次运行 ansible awx 安装,它会像对我一样工作:)
$ sudo ansible-playbook -i inventory install.yml
这里是类似问题的参考 sudo: docker-compose: command not found
,默认情况下 pip 会在 /usr/local/bin/ 安装 docker-compose,看来 Ansible 没有在路径中包含 /usr/local/bin/,我通过在 / 中创建一个链接实现了一个快速解决方法usr/bin/ 修复了 AWX 安装程序错误:
- name: Create symbolic link for docker-compose
file:
src: "/usr/local/bin/docker-compose"
dest: "/usr/bin/docker-compose"
state: link