mkh*_*tib 4 docker kubernetes google-kubernetes-engine dockerfile
我正在尝试使用Kubernetes在Google Cloud Containers上运行的docker容器的开头运行shell脚本.我的app目录的结构是这样的.我想在容器的开头运行prod_start.sh脚本(我不想把它作为Dockerfile的一部分).当前设置无法启动容器Command not found file ./prod_start.sh does not exist
.知道如何解决这个问题吗?
app/
...
Dockerfile
prod_start.sh
web-controller.yaml
Gemfile
...
Run Code Online (Sandbox Code Playgroud)
Dockerfile
FROM ruby
RUN mkdir /backend
WORKDIR /backend
ADD Gemfile /backend/Gemfile
ADD Gemfile.lock /backend/Gemfile.lock
RUN bundle install
Run Code Online (Sandbox Code Playgroud)
网络controller.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
Run Code Online (Sandbox Code Playgroud)
经过大量的实验,我相信将脚本添加到Dockerfile
:
ADD prod_start.sh /backend/prod_start.sh
Run Code Online (Sandbox Code Playgroud)
然后在yaml
控制器文件中调用这样的命令:
command: ['/bin/sh', './prod_start.sh']
Run Code Online (Sandbox Code Playgroud)
固定它.
归档时间: |
|
查看次数: |
5319 次 |
最近记录: |