我正在尝试使用Ansible的docker_image模块构建我的容器图像。
我的主机详细信息:
OS: Lubuntu 17.10
ansible 2.4.2.0
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/myuser/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.14 (default, Sep 23 2017, 22:06:14) [GCC 7.2.0]
我的远程计算机详细信息:
Remote OS: CentOS 7.2
Pip modules: docker-py==1.2.3 , six==latest
我在playbook中的任务:
- name: Install dependent python modules
pip:
name: "{{item}}"
state: present
with_items:
- docker-py
- name: Build container image for api
docker_image:
name: api
path: /home/abc/api/ #location of my Dockerfile
但是我不断收到以下错误消息:
"msg": "Failed to import docker-py - No module named 'requests.packages.urllib3'. Try `pip install docker-py`"
我看到docker-py模块存在一些问题,并且还在以下链接中合并了一些解决方案并修复了ansible docker_container:
https://github.com/ansible/ansible/issues/20492
https://medium.com/dronzebot/ansible-and-docker-py-path-issues-and-resolving-them-e3834d5bb79a
我甚至尝试使用以下命令来运行我的剧本:
python3 ansible-playbook main.yml
以上都没有帮助成功解决它。我现在应该怎么做呢
答案 0 :(得分:0)
除了docker-py
之外,还要安装以下软件包:
- requests
- urllib3
答案 1 :(得分:0)
解决方法如下:
- name: Install dependent python modules
pip:
name: "{{item}}"
state: present
with_items:
- docker-py==1.10.6
- docker-compose==1.9.0
它适用于docker-py和docker-compose的上述版本。 参考更多信息: https://github.com/ansible/ansible/issues/20380 1
答案 2 :(得分:0)
docker-py模块在特定版本中有一些需求模块。
使用pip卸载当前的docker-py,然后在远程主机上再次使用pip重新安装它。pip uninstall docker-py
以及pip install docker-py
之后
我遇到了与docker.py和docker-compose.py