我正在尝试使一个清漆容器作为多室内码头环境的一部分运行。
我正在使用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设置的一部分运行时,我会得到:
错误:对于Eventsapi_varnish_1,无法启动服务varnish: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.0:80 -p http_req_hdr_len = 16384 -p http_resp_hdr_len = 16384 /usr/local/sbin/varnishd -j unix,user = varnishd -f -f -f /etc/varnish/default.vcl -s malloc,64m -a -a 0.0.0.0:80 -p http_req_hdr_len = 16384 -p http_resp_hdr_len = 16384:没有这样的文件或 目录"
如果我尝试
,我会得到相同的CMD ["start-varnishd"]
(就像基本的新闻台上/docker-varnish中一样)
或
CMD [/usr/local/bin/start-varnishd]
但是,如果我直接在容器上运行bash壳:
docker run -t -i eventsapi_varnish /bin/bash
然后从那里运行varnishd命令,Varnish启动良好(并开始抱怨它找不到Web容器,显然)。
我在做什么错?什么文件找不到?再次直接围绕运行的容器,看来Varnish是它应该认为应该是的地方,VCL文件是它应该是的地方...是什么阻止了它在Docker-Compose内部运行?
谢谢!
我没有遇到为什么会遇到此错误的底部,而是通过使用(更近期的?)fork:https://hub.docker"修复"它。com/r/tripviss/varnish/。我的dockerfile现在只是:
FROM tripviss/varnish:5.1
COPY default.vcl /usr/local/etc/varnish/