2016-09-18 84 views
1

還有一個類似的問題here,但我想我想要不同的東西。 對於那些誰熟悉泊塢窗,撰寫,有它在容器中運行命令只是曾經輝煌的命令,這種瘋狂幫助每個部署之前啓動遷移:Kubectl使用yaml文件配置運行

docker-compose -f docker-compose.prod.yml run web npm run migrate 

也正因爲這是一個命令行的是舒適自動化目的:像使用Makefile或ansible/chef/saltstack。

我發現的唯一的東西是kubectl run這更像是docker run。但docker-compose run允許我們使用的配置文件,其中搬運工運行並不:

kubectl run rp2migrate --command -- npm run migrate 

這可能會工作,但我需要列出20個環境變量,真的不希望這樣做的命令行。 。相反,我想通過這將指定YAML配置這樣的標誌:

kubectl run rp2migrate -f k8s/rp2/rp2-deployment.yaml --command -- npm run migrate 

回答

1

編輯:

Kubernetes也得到init containers作爲測試功能(截至目前) - http://kubernetes.io/docs/user-guide/production-pods/#handling-initialization


您應該利用Kubernetes PostStart掛鉤。類似下面:

此外,從莢定義用戶定義的環境變量,也可用來:

lifecycle: 
    postStart: 
    exec: 
     command: 
     - "npm" 
     - "run" 
     - "migrate" 

http://kubernetes.io/docs/user-guide/container-environment/

指定爲您的吊艙也將會生效的環境變量容器,以及在Docker鏡像中靜態指定的任何環境變量