gpt4 book ai didi

docker - 如何使用 Kubernetes 在云容器引擎中的容器启动时运行脚本

转载 作者:行者123 更新时间:2023-12-05 00:57:57 26 4
gpt4 key购买 nike

我正在尝试在使用 Kubernetes 的 Google Cloud Containers 上运行的 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
...

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

网络 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

最佳答案

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

ADD prod_start.sh /backend/prod_start.sh

然后在 yaml 中调用这样的命令 Controller 文件:
command: ['/bin/sh', './prod_start.sh']

修复。

关于docker - 如何使用 Kubernetes 在云容器引擎中的容器启动时运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33799195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com