2017-08-31 73 views
0

我試圖讓一個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中運行?

謝謝!

回答

0

我沒有深入瞭解爲什麼出現這個錯誤,但是通過使用(更近期的?)分支來「固定」它:https://hub.docker.com/r/tripviss/varnish/。我的Dockerfile現在只是:

FROM tripviss/varnish:5.1 

COPY default.vcl /usr/local/etc/varnish/ 
相關問題