我有一个具有以下结构的Docker项目:
.
├── config
└── Dockerfile
Dockerfile
FROM alpine:latest
EXPOSE 8118
RUN apk --update add privoxy
COPY config /etc/privoxy/config
CMD ["privoxy", "--no-daemon"]
并且config
包含两行
listen-address 0.0.0.0:8118
forward-socks5 / tor:9050 .
在容器中,我想将Privoxy配置文件(默认位置为/etc/privoxy
(参见https://www.privoxy.org/user-manual/config.html))放入本地' config
文件,这是我尝试使用COPY
指令实现的。
但是,如果我docker build --tag my_privoxy .
后跟docker run my_privoxy
,我会看到以下错误消息:
2017-05-02 10:40:29.371 7f2ce5f00b48 Info: Privoxy version 3.0.24
2017-05-02 10:40:29.371 7f2ce5f00b48 Info: Program name: privoxy
2017-05-02 10:40:29.371 7f2ce5f00b48 Fatal error: can't check configuration file '//config': Invalid argument
我不知道配置文件的预期位置如何以容器中的'//config'
结尾; COPY
的使用在我看来与https://docs.docker.com/engine/reference/builder/#copy一致。以上Dockerfile
有什么问题?
答案 0 :(得分:2)
是/etc/privoxy/config
目录吗?如果不是,那么你的命令应该是
COPY config /etc/privoxy/
答案 1 :(得分:0)
根据privoxy --help
,该命令接受[configfile]
可选输入。所以我把最后一行改为
CMD ["privoxy", "--no-daemon", "/etc/privoxy/config"]
它有效。 (我仍然不明白为什么没有configfile
输入它不起作用,因为/etc/privoxy/config
应该是默认值。
答案 2 :(得分:0)
在容器中,我想制作Privoxy配置文件
您可以使用所需的配置将卷装入文件夹。这将通过docker run -v hostFolder:containerFolder imagename
完成。但是,这不会产生带有配置的新图像,而是会得到一个具有所需配置的容器。