小弟想用 Caddy 建个反代的 docker ,但是 env 变量写入文件一直没有变,
不知什么原因,大牛们指点指点 ( kmm996/proxy 是只装了 Caddy 的镜像)
dockerfile
build
之后进入 docker 发现变量 proxy 还是没变
1
isCyan 2017-04-23 15:02:39 +08:00 1
因为 Dockerfile 的 RUN 命令是在 build 的时候运行的,所以读取 ENV 并修改 Caddyfile 只在 build 的时候发生了,而 docker run 命令附带新的 env proxy=baidu.com 启动容器的时候,只是当时的环境变量改变了,而 RUN 命令并没有运行,所以 Caddyfile 并没有被修改,所以即使环境变量是 baidu.com 而 caddyfile 仍然是 google.com 。
这个 Dockerfile 写得很古怪。应该是这样,把放 run.sh 和 Caddyfile 的文件放在仓库里面, run.sh 里面有修改 Caddyfile 的命令, Dockerfile 中把 Caddyfile 和 run.sh copy 到某个目录,然后 CMD 那个 run.sh 让他在运行之前修改 caddyfile 然后启动 caddy server |
2
isCyan 2017-04-23 15:07:09 +08:00
你要反代 google 这样搞是没用的,直接用我的 https://github.com/brentybh/onemirror 就可以了
|
3
lslqtz 2017-04-23 16:34:39 +08:00
建议你根据 env 开机启动个 sh 脚本写配置文件
|