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/
我正在尝试获取 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/