我试图使用webhooks基于this tutorial的Docker中心自动部署。一个容器在端口80上运行web应用程序。在同一台主机上,我运行另一个容器,用于侦听来自Docker集线器的发布请求,从而触发主机更新webapp映像。 post请求会触发一个如下所示的bash脚本:使用容器内的bash脚本运行Docker命令
echo pulling...
docker pull my_username/image
docker stop img
docker rm img
docker run --name img -d -p 80:80 my_username/image
测试有效内容成功触发脚本。但是,容器记录下列投诉:
pulling...
app/deploy.sh: line 4: docker: command not found
...
app/deploy.sh: line 7: docker: command not found
看来,bash脚本不会隐式访问主机。如何进行?
的东西,我试过,但没有奏效: 发射了听众容器时,我加入了主机IP这样的基础上,docs:
HOSTIP=`ip -4 addr show scope global dev eth0 | grep inet | awk '{print\$2}' | cut -d/-f 1`
docker run --name listener --add-host=docker:${HOSTIP} -e TOKEN="test654321" -d -p 5000:5000 mjhea0/docker-hook-listener
同样,我取代与--add-host命令--add-host=dockerhost:$(ip route | awk '/docker0/ { print $NF }')
根据this suggestion。
非常好,这解决了问题! 我的困惑源于这个事实,这在教程中没有提到,否则它很精确。 –