我的當前設置:如何建立我的泊塢窗(的NodeJS)容器中,特拉維斯和生產
- 當改變代碼推到Github上,特拉維斯觸發構建。
- Travis使用Dockerfile構建容器並推送到dockerhub。
我需要實現:
- 從搬運工樞紐拉容器內部的生產環境。
- 運行容器公開需要的端口。
途徑:
- SSH到生產環境並拉動容器和運行(使用travis.yml)。
我想在Travis構建成功後在生產環境中拉動並運行容器。 SSH似乎黑客攻擊,我需要最佳做法來實現這一點。
我的當前設置:如何建立我的泊塢窗(的NodeJS)容器中,特拉維斯和生產
我需要實現:
途徑:
我想在Travis構建成功後在生產環境中拉動並運行容器。 SSH似乎黑客攻擊,我需要最佳做法來實現這一點。
你有幾個選擇:
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實例根本不會成爲問題。
我希望這會有所幫助。
你的產品環境是什麼?它是一種雲環境還是物理服務器? –
亞馬遜EC2 linux實例 – sith
是否使用託管解決方案解決方案?我們使用彈性beanstalk,並且CI管道工作得很好。這有點額外的工作,但它會讓你的部署更順暢。 –