我試圖使用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。
非常好,這解決了問題! 我的困惑源於這個事實,這在教程中沒有提到,否則它很精確。 –