docker varnish cmd 错误 - 没有那个文件或目录

docker varnish cmd error - no such file or directory

我正在尝试获取 Varnish 容器 运行ning 作为多容器 Docker 环境的一部分。

我正在使用 https://github.com/newsdev/docker-varnish 作为基础。

我的 Docker 文件看起来像:

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 设置的一部分时,我得到:

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]

但是如果我直接在容器上运行一个bashshell:

docker run -t -i eventsapi_varnish /bin/bash

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

我做错了什么?找不到什么文件?再次直接环顾 运行ning 容器,似乎 Varnish 在它认为应该在的地方,VCL 文件在它认为应该在的地方……是什么阻止了它 运行ning 从内部 docker-撰写?

谢谢!

我没有深入了解为什么会出现此错误,但 "fixed" 通过使用(更新的?)fork:https://hub.docker.com/r/tripviss/varnish/。我的 Dockerfile 现在只是:

FROM tripviss/varnish:5.1

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