如何使用Kubernetes在Cloud Containers Engine中的容器开始处运行脚本

我正尝试在使用Kubernetes的Google云端容器上运行Docker容器的开始处运行shell脚本。 我的应用程序目录的结构是这样的。 我想在容器的开始运行prod_start.sh脚本(我不想把它作为Dockerfile的一部分)。 当前安装程序无法启动容器与Command not found file ./prod_start.sh does not exist 。 任何想法如何解决这个问题?

 app/ ... Dockerfile prod_start.sh web-controller.yaml Gemfile ... 

Dockerfile

 FROM ruby RUN mkdir /backend WORKDIR /backend ADD Gemfile /backend/Gemfile ADD Gemfile.lock /backend/Gemfile.lock RUN bundle install 

networkingcontroller.yaml

 apiVersion: v1 kind: ReplicationController metadata: name: backend labels: app: myapp tier: backend spec: replicas: 1 selector: app: myapp tier: backend template: metadata: labels: app: myapp tier: backend spec: volumes: - name: secrets secret: secretName: secrets containers: - name: my-backend command: ['./prod_start.sh'] image: gcr.io/myapp-id/myapp-backend:v1 volumeMounts: - name: secrets mountPath: /etc/secrets readOnly: true resources: requests: cpu: 100m memory: 100Mi ports: - containerPort: 80 name: http-server 

经过大量的实验,我相信将脚本添加到Dockerfile

 ADD prod_start.sh /backend/prod_start.sh 

然后在yaml控制器文件中像这样调用这个命令:

 command: ['/bin/sh', './prod_start.sh'] 

修复。