我正在尝试在 Kubernetes 中部署一个容器,同时将文件从持久卷之一复制到特定目录。问题是,如果我立即运行该命令,它将在安装持久卷之前尝试复制文件。 我想帮助我使用语法来延迟复制命令几秒钟,直到安装持久卷。
我尝试像这样输入命令字段,但容器在部署 Pod 时崩溃。
spec:
containers:
- image: andreask81/syspass:latest
name: syspass-app
command: ["/bin/bash"]
args: ["sleep 30", "cp /var/www/html/sysPass/config/backup/config.xml /var/www/html/sysPass/config/config.xml"]
这个也不起作用,并导致 pod 在容器创建后立即崩溃。
command: ["/bin/bash","-c","sleep 10 && cp /var/www/html/sysPass/config/backup/config.xml /var/www/html/sysPass/config/config.xml"]
同时,当我直接在 shell 中的类似容器中运行以下命令时,它可以工作。
/bin/bash -c "sleep 1" && cp /var/www/html/sysPass/config/backup/config.xml /var/www/html/sysPass/config/config.xml
知道如何格式化 YAML 文件中的“command:”字段以使其工作吗?
在清单文件中,您没有将 -c 添加到命令值或参数的开头。这有什么原因吗?请添加它并再试一次:
spec:
containers:
- image: andreask81/syspass:latest
name: syspass-app
command: ["/bin/bash", "-c"]
args: ["sleep 30 && cp /var/www/html/sysPass/config/backup/config.xml /var/www/html/sysPass/config/config.xml"]
您还可以添加包含所需命令的 bash 脚本,并在 yaml 命令值上调用它。
保持清洁:)