【发布时间】:2015-07-16 16:17:27
【问题描述】:
我正在使用 Ansible 为我的服务器提供使我的网站正常运行所需的任何东西。目标是安装一个基础系统并为其提供运行应用程序的 docker 容器(目前它只是一个应用程序)。
我面临的问题是我的 docker 映像没有托管在 dockerhub 或其他地方。相反,它是由 Ansible 任务构建的。但是,当我尝试运行构建的映像时,Ansible 会尝试拉取它(这是不可能的)然后死掉。
这就是剧本部分的样子:
- 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
当我运行它时,失败表明 svenv/svenv.nl 已从存储库中提取,它不存在因此崩溃:
failed: [vps02.svenv.nl] => {"changes": ["{\"status\":\"Pulling repository svenv/svenv.nl\"}\r\n", "{\"errorDetail\":{\"message\":\"Error: image svenv/svenv.nl:latest not found\"},\"error\":\"Error: image svenv/svenv.nl:latest not found\"}\r\n"], "failed": true, "status": ""}
msg: Unrecognized status from pull.
FATAL: all hosts have already failed -- aborting
我的问题是:
我该怎么做
- 构建本地 docker
- 然后将其作为容器启动而不拉动它
【问题讨论】:
-
你用的是什么版本的ansible?什么版本的码头工人?假设我用本地可用的东西替换所有路径名,你的剧本对我来说很好。
-
- ansible 版本(在本地机器上):ansible 1.9.2 - docker 版本(在远程):Docker 版本 1.7.1,build 786b29d
-
嗯,我在本地使用 docker 1.6.0。让我看看新版本会发生什么。