2016-05-23 176 views
0

我在Elastic Beanstalk上部署Docker應用程序。它有效,但需要永久(30分鐘直到它恢復到「綠色」狀態)。在我的開發環境中,它在幾秒鐘內完成。 ssh方式連接到生產實例和拖尾日誌(/var/log/eb-activity.log),我看到它掛在標有星號線以下(運行03build.sh):超慢速彈性Beanstalk Docker部署

[2016-05-23T13:10:00.430Z] INFO [3199] - [Application deployment [email protected]/StartupStage0/AppDeployPreHook/02loopback-check.sh] : Starting activity... 
[2016-05-23T13:10:07.845Z] INFO [3199] - [Application deployment [email protected]/StartupStage0/AppDeployPreHook/02loopback-check.sh] : Completed activity. 
*****[2016-05-23T13:10:07.845Z] INFO [3199] - [Application deployment [email protected]/StartupStage0/AppDeployPreHook/03build.sh] : Starting activity... 
[2016-05-23T13:31:58.805Z] INFO [3199] - [Application deployment [email protected]/StartupStage0/AppDeployPreHook/03build.sh] : Completed activity. Result: 
    latest: Pulling from srfoster/my-repo 
    6714a7dc486b: Pulling fs layer 
    5866500c2af9: Pulling fs layer 
    ... ETC ... 

基於對一個的(不接受)回答這個類似的問題...

Why are Docker build commands running so slow in Elastic Beanstalk?

我跑

docker info | grep Storage 

和回來

devicemapper 

據推測,aufs比devicemapper快(根據上面鏈接的問題)。

Buuuut,即使這是真的,我也不知道如何讓Beanstalk的預建圖像在旋轉時使用一個和另一個。

對此有何建議?或者還有其他方法可以解決緩慢部署問題嗎?

+0

有幾個問題:您是否使用已經構建的Docker鏡像進行部署?什麼註冊管理機構使用這個 - ECR或其他什麼?您運行的服務有多少個實例? – sap1ens

+0

它尚未建成。它使用了一個基礎鏡像,然而,它從dockerhub上的一個私有倉庫中提取。我看到一個EB實例的緩慢。 –

回答

1

好吧,我嘗試使用完全構建的docker鏡像進行部署,以最大限度地減少部署期間必須在實例上完成的工作量。我可以確認這會將部署時間縮短到3分鐘左右。

注意,(因爲這是一個Rails應用程序),我也只好烤不只是應用程序代碼,但還之類的東西

bundle install 

而且

rake assets:precompile 

我就把這一切的結果到一個圖像中,並將完全烘焙的圖像部署到(在我的情況下)Dockerhub。我部署到Amazon與

eb deploy 

基本上只是這Dockerfile:

FROM srfoster/my-fully-built-docker-image:latest 
EXPOSE 80 
ENTRYPOINT /path/to/foreman start -f AWSProcfile 

和準系統Dockerrun.aws.json

{ 
    "AWSEBDockerrunVersion": "1", 
    "Authentication": { 
     "Bucket": "my-credentials-bucket", 
     "Key": "path/to/my/dockercfg" 
    }, 
    "Ports": [ 
    { 
     "ContainerPort": "80" 
    } 
    ], 
    "Logging": "/var/log/nginx" 
} 

有絕對沒有別的部署目錄。無應用程序代碼。快速部署。我很高興。