我正在服务器上运行多个 docker 容器,并且需要对所有容器上的存储库执行 git pull 。
我尝试过使用这个:
docker exec $(docker ps -q) bash -c "cd /var/www/html && git pull"
Run Code Online (Sandbox Code Playgroud)
但它出错了:
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"606a1083d0be\": executable file not found in $PATH": unknown
Run Code Online (Sandbox Code Playgroud)
它曾经工作过,但后来突然停止工作,没有明显的原因(我没有更改任何docker配置)
注意:输出docker ps -q仅是容器 ID:
511c76a25dcc
995bd453c467
Run Code Online (Sandbox Code Playgroud)
使用 Docker exec,您可以一次在一个容器上运行该命令,但从您的问题来看,您想在所有正在运行的容器上运行该命令,就这样吧。
for containerId in $(docker ps -q)
do
docker exec -it $containerId bash -c 'cd /var/www/html && git pull'
done
Run Code Online (Sandbox Code Playgroud)
我假设 git 已经安装在所有正在运行的容器中并且都基于 bash
或者更紧凑的形式可以是
for i in `docker ps -q`; do docker exec -it $i bash -c 'cd /var/www/html && git pull'; done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2738 次 |
| 最近记录: |