shell - PostStarthook 以 126 退出
问题描述
我需要将位置 B 中已经存在的一些配置文件复制到位置 A,在该位置我已在同一容器中安装了持久卷。为此,我尝试如下配置启动后挂钩
lifecycle:
postStart:
exec:
command:
- "sh"
- "-c"
- >
if [! -d "/opt/A/data" ] ; then
cp -rp /opt/B/. /opt/A;
fi;
rm -rf /opt/B
但它以 126 退出 请提供任何提示
解决方案
您应该在第一个括号后留一个空格[
。以下Deployment
作品:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
lifecycle:
postStart:
exec:
command:
- "sh"
- "-c"
- >
if [ ! -d "/suren" ] ; then
cp -rp /docker-entrypoint.sh /home/;
fi;
rm -rf /docker-entrypoint.sh
因此,这个 nginx 容器docker-entrypoint.sh
默认以脚本启动。容器启动后,找不到目录suren,这将给语句,它将脚本复制到true
目录并从根目录中删除脚本。if
/home
# kubectl exec nginx-8d7cc6747-5nvwk 2> /dev/null -- ls /home/
docker-entrypoint.sh
推荐阅读
- react-native - 如何使用 react-native-firebase 库作为侦听器从来自 Salesforce MarketingCloud 的推送通知中获取数据?
- pine-script - 用于买入收盘价的 Pine 脚本在每日柱上卖出开盘价
- python-3.x - 在序列列表中查找常见子序列
- javascript - 错误:HTML / JQuery 更改选择时我无法清理输入
- snowflake-cloud-data-platform - 将工作 .odbc 连接转换为 SnowSQL 配置文件
- c - 如何在 Windows 上更新安装 GCC 11.2
- reactjs - 批处理由 mobx 反应引起的渲染触发状态更新
- text-to-speech - 有没有办法在 SpeechSynthesizer 上使用 StopSpeakingAsync 而不用 Dispose 挂起?
- python - 管道中的值错误:仅熊猫数据帧支持使用字符串指定列
- spring - 为什么@Value 属性为空?