2014-10-31 148 views
2

我一直在試圖讓我可以部署我的集裝箱,我已經成功地使用了以下配置,但是我遇到的問題是它不會啓動我的最新版本容器。部署最新的碼頭集裝箱

- 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 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

我認爲問題是與名稱屬性。 name屬性設置容器的當前名稱。通常這個名字是隨機分配的 _ <科學家姓名>。我認爲在啓動容器時重複使用相同的名稱會產生與圖像ID綁定的不良副作用。通過不指定name屬性,我能夠使用最新的標籤啓動容器。 這個觀察結果可能會回答我原來的問題,但它最終導致了更多的問題,因爲我無法通過名稱來尋址容器,因爲我多次在一個盒子上部署同一個容器。 – 2014-11-03 07:27:06

回答

-2

我寫我自己的部署解決方案固定我的問題,然後打開它來源,https://github.com/mrinterweb/freighter

我設計的貨是很容易配置和靈活的在同一時間。我希望有人發現它有幫助。我還沒有完成貨船,但在這一點上它是可用的。

我意識到這並沒有回答關於如何部署docker的問題,但我放棄了嘗試部署容器的問題。我只是沒有找到合適的碼頭模塊足夠成熟,足夠記錄,或根據我的需要進行配置。

+4

而不是創建一個新的庫來解決你可能自己擴展Docker模塊的問題,你是對的,這不是一個答案。 – 2015-02-03 16:06:08

0

在黑暗中拍攝,但語法看起來很奇怪。它不應該是

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

另外,爲什麼你使用原始而不是命令(或外殼)?

+0

我嘗試使用docker模塊的name屬性。當我使用它時,它在第一次部署時工作正常,但隨後部署的容器與最初指定名稱的原始部署的容器標識綁定。這意味着當我想推送我的容器的最新標籤時,舊容器就是啓動的那個容器。爲了使它始終部署最新的標記,我必須刪除名稱屬性。我對新手來說是新手,這就是爲什麼我使用「原始」協作者。結果似乎與殼牌或命令相同。 – 2014-11-03 07:16:55

+0

我忘記了Docker站點上的位置,他們展示了一個將單個命令的參數分解爲多行的示例,就像我在原始示例中所述。我最初的例子工作和命令參數被解釋。我不相信我的問題與語法有關。我認爲我的問題是我期望碼頭模塊能夠正常工作。 – 2014-11-03 07:52:14

+0

我也對碼頭模塊感到困惑。似乎非常pooly記錄。 – devth 2014-12-04 21:53:09