我正在服务器上运行多个 docker 容器,并且需要对所有容器上的存储库执行 git pull 。
我尝试过使用这个:
docker exec $(docker ps -q) bash -c "cd /var/www/html && git pull"
但它出错了:
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"606a1083d0be\": executable file not found in $PATH": unknown
它曾经工作过,但后来突然停止工作,没有明显的原因(我没有更改任何docker配置)
注:输出为docker ps -q
只是容器 ID:
511c76a25dcc
995bd453c467
使用 Docker exec,您可以一次在一个容器上运行该命令,但从您的问题来看,您想在所有正在运行的容器上运行该命令,就这样吧。
for containerId in $(docker ps -q)
do
docker exec -it $containerId bash -c 'cd /var/www/html && git pull'
done
我假设 git 已经安装在所有正在运行的容器中并且都基于 bash
或者更紧凑的形式可以是
for i in `docker ps -q`; do docker exec -it $i bash -c 'cd /var/www/html && git pull'; done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)