我一直在尝试使用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(这不是最新的容器)。任何人都可以帮我弄清楚出了什么问题吗?
答案 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模块足够成熟,足够记录或可根据我的需要进行配置。