docker varnish cmd错误 - 没有这样的文件或目录

时间:2017-08-31 08:51:55

标签: docker-compose varnish

我试图让Varnish容器作为多容器Docker环境的一部分运行。

我使用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" ]

当我作为docker-compose设置的一部分运行时,我得到:

  

错误:for eventsapi_varnish_1无法启动服务清漆:oci   运行时错误:container_linux.go:262:启动容器进程   引起" 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:没有这样的文件或   目录"

如果我尝试

,我会得到同样的结果
CMD ["start-varnishd"]

(因为它在基础newsdev / docker-varnish中)

CMD [/usr/local/bin/start-varnishd]

但如果我直接在容器上运行bash shell:

docker run -t -i eventsapi_varnish /bin/bash

然后从那里运行varnishd命令,varnish启动正常(并开始抱怨它显然无法找到Web容器)。

我做错了什么?它找不到什么文件?再次直接查看正在运行的容器,似乎Varnish是它认为应该的位置,VCL文件是它认为它应该是什么......什么是阻止它在docker-compose中运行?

谢谢!

1 个答案:

答案 0 :(得分:1)

我没有弄清楚为什么我会收到此错误,但是"已修复"通过使用(更近期?)fork:https://hub.docker.com/r/tripviss/varnish/。我的Dockerfile现在只是:

FROM tripviss/varnish:5.1

COPY default.vcl /usr/local/etc/varnish/