使用ansible部署最新的docker容器

时间:2014-10-31 22:08:24

标签: docker ansible ansible-playbook

我一直在尝试使用ansible来部署我的容器,并且我已成功使用以下配置,但我遇到的问题是它无法启动我的容器的最新版本。

- name: Deploy
  hosts: staging
  tasks:
    - name: Install docker-py
      pip: name=docker-py
    - name: Pull latest container
      raw: docker pull org/proj:latest
    - name: Stop container
      docker:
        image="org/proj:latest"
        name=proj-rails
        state=stopped
    - name: Deploy container
      docker:
        image="org/proj:latest"
        name=proj-rails
        ports=80:80
        state=running

我可以构建并将新容器推送到docker hub并尝试将它们拉下来。在服务器docker images上列出了最新的容器:

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
org/proj            latest              9f0de94df28c        2 hours ago         675.5 MB
<none>              <none>              15f4bbbeebca        2 days ago          670.6 MB
<none>              <none>              f7958247ed52        2 days ago          670.3 MB

我的问题是ansible继续启动15f4bbbeebca(这不是最新的容器)。任何人都可以帮我弄清楚出了什么问题吗?

3 个答案:

答案 0 :(得分:0)

在黑暗中拍摄,但这种语法对我来说很奇怪。不应该是

- name: Stop container
  docker:
    image: org/proj:latest
    name: proj-rails
    state: stopped

另外,为什么使用raw而不是命令(或shell)?

答案 1 :(得分:0)

问题是否可能来自被误解的 latest标记?请参阅此https://medium.com/@mccode/the-misunderstood-docker-tag-latest-af3babfd6375#.hlzfep7mn

答案 2 :(得分:-2)

我通过编写自己的部署解决方案解决了我的问题,然后开源,https://github.com/mrinterweb/freighter

我设计的货机可以同时轻松配置和灵活。我希望有人觉得它有用。我还没有完成货轮,但此时可以使用。

我意识到这并没有回答有关如何使用ansible部署docker的问题,但我放弃了尝试使用ansible部署容器。我只是没有发现ansible docker模块足够成熟,足够记录或可根据我的需要进行配置。