我試圖讓一個Varnish容器作爲multContainer Docker環境的一部分運行。碼頭清漆CMD錯誤 - 沒有這樣的文件或目錄
我使用https://github.com/newsdev/docker-varnish作爲基礎。
我Dockerfile樣子:
FROM newsdev/varnish:4.1.0
COPY start-varnishd.sh /usr/local/bin/start-varnishd
ENV VARNISH_VCL_PATH /etc/varnish/default.vcl
ENV VARNISH_PORT 80
ENV VARNISH_MEMORY 64m
EXPOSE 80
CMD [ "exec /usr/local/sbin/varnishd -j unix,user=varnishd -F -f /etc/varnish/default.vcl -s malloc,64m -a 0.0.0.0:80 -p http_req_hdr_len=16384 -p http_resp_hdr_len=16384" ]
當我運行這是一個碼頭工人,撰寫設置的一部分,我得到:
ERROR: for eventsapi_varnish_1 Cannot start service varnish: oci runtime error: container_linux.go:262: starting container process caused "exec: \"exec /usr/local/sbin/varnishd -j unix,user=varnishd -F -f /etc/varnish/default.vcl -s malloc,64m -a 0.0.0.0:80 -p http_req_hdr_len=16384 -p http_resp_hdr_len=16384\": stat exec /usr/local/sbin/varnishd -j unix,user=varnishd -F -f /etc/varnish/default.vcl -s malloc,64m -a 0.0.0.0:80 -p http_req_hdr_len=16384 -p http_resp_hdr_len=16384: no such file or directory"
我得到同樣的,如果我嘗試
CMD ["start-varnishd"]
(因爲它在基礎newsdev/docker-varnish)
或
CMD [/usr/local/bin/start-varnishd]
但是,如果我直接在容器上運行的bash shell:
docker run -t -i eventsapi_varnish /bin/bash
,然後再從那裏varnishd命令,清漆開始了罰款(並開始抱怨說,它可以」顯然)找到Web容器。
我在做什麼錯?什麼文件不能找到?直接再次查看正在運行的容器,似乎Varnish是它認爲它應該是的地方,VCL文件是它認爲它應該是的地方...什麼阻止它在docker-compose中運行?
謝謝!