我正在使用Ansible为我的服务器配置使我的网站工作所需的任何东西。目标是安装一个基本系统并为其提供运行应用程序的docker容器(目前它只是一个应用程序)。
我面临的问题是我的docker镜像不是在dockerhub或其他东西托管的。相反,它是由Ansible任务构建的。但是,当我试图运行构建的图像时,Ansible试图拉动它(这是不可能的),然后就死了。
这就是剧本部分的样子:
<div class="header">
</div>
当我运行它时,失败表明svenv / svenv.nl从存储库中被拉出,它不存在,所以它崩溃了:
- name: check or build image
docker_image:
path=/srv/svenv.nl-docker
name='svenv/svenv.nl'
state=build
- name: start svenv/svenv.nl container
docker:
name: svenv.nl
volumes:
- /srv/svenv.nl-docker/data/var/lib/mysql/:/var/lib/mysql/
- /srv/svenv.nl-docker/data/svenv.nl/svenv/media:/svenv.nl/svenv/media
ports:
- 80:80
- 3306:3306
image: svenv/svenv.nl
我的问题是:
我怎么能
答案 0 :(得分:6)
您正在遇到此错误:
Ansible正在尝试创建一个容器,但创建失败了:
docker.errors.InvalidVersion: mem_limit has been moved to host_config in API version 1.19
不幸的是,有一个全能except:
隐藏了这个错误。结果是,ansible假定图像在本地丢失并试图拉动它,而不是使用上述消息失败。
您可以通过将docker_api_version
设置为早于1.19的内容来解决此问题:
- name: start svenv/svenv.nl container
docker:
name: svenv.nl
ports:
- 80:80
- 3306:3306
image: svenv/svenv.nl
docker_api_version: 1.18