【问题标题】:Ansible and docker: locally build image get pulled and causes failureAnsible 和 docker:本地构建镜像被拉取并导致失败
【发布时间】: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。让我看看新版本会发生什么。

标签: linux unix docker ansible


【解决方案1】:

你遇到了这个错误:

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

【讨论】:

  • 非常感谢。这为我解决了这个问题。我已经用讨厌的变通方法退回到 docker 的 repo bash 脚本。这清理了我的 Ansible。谢谢!
  • 考虑单击此答案左侧的复选标记以将其标记为已接受,这既是一种表示感谢的方式,也可以让其他人知道这个问题已得到解决。看起来有针对此问题的补丁,但不是最新的;我看到要针对当前代码应用需要付出多少努力。
  • 我刚刚帮助合并 a patch 似乎解决了这个问题。
猜你喜欢
  • 2019-11-26
  • 2022-01-02
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
相关资源
最近更新 更多