2016-10-27 24 views
3
運行

我的當前設置:如何建立我的泊塢窗(的NodeJS)容器中,特拉維斯和生產

  • 當改變代碼推到Github上,特拉維斯觸發構建。
  • Travis使用Dockerfile構建容器並推送到dockerhub。

我需要實現:

  • 從搬運工樞紐拉容器內部的生產環境
  • 運行容器公開需要的端口。

途徑:

  • SSH到生產環境並拉動容器和運行(使用travis.yml)。

我想在Travis構建成功後在生產環境中拉動並運行容器。 SSH似乎黑客攻擊,我需要最佳做法來實現這一點。

+0

你的產品環境是什麼?它是一種雲環境還是物理服務器? –

+0

亞馬遜EC2 linux實例 – sith

+0

是否使用託管解決方案解決方案?我們使用彈性beanstalk,並且CI管道工作得很好。這有點額外的工作,但它會讓你的部署更順暢。 –

回答

1

你有幾個選擇:

1 - 你真的想拉圖像DockerHub構建完成後,Travis是做了不之後,在這種情況下,你可以使用DockerHub網絡掛接調用某種服務器上的服務(它可以歸結爲任何類型的腳本),這將拉動圖像並運行它。

https://docs.docker.com/docker-hub/repos/#/webhooks

您可以使用集線器庫網絡掛接一個新的形象推到你的資料庫 後通知其他人,服務和其他 應用程序(這恰好也是爲了自動生成)。例如,只要圖像是 可用,您就可以觸發 自動測試或部署。

2 - 使用類似Ansible的東西來避免SSH自動進入機器。你編寫一個Ansible角色,它會在你的Travis版本中運行。 Ansible有一個非常好的碼頭模塊,所以你會很好。

3 - 使用更適應的基礎設施,如Amzon ECS,它基本上是一個或一組EC2實例,可爲您運行和管理Docker容器和映像。如果您知道如何旋轉EC2實例,那麼製作簡單的ECS實例根本不會成爲問題。

我希望這會有所幫助。