小弟初学 docker,请教一个 ENV 不改变的 问题

2017-04-23 14:46:39 +08:00
 kmm996

小弟想用 Caddy 建个反代的 docker ,但是 env 变量写入文件一直没有变,

不知什么原因,大牛们指点指点 ( kmm996/proxy 是只装了 Caddy 的镜像)

dockerfile

build

之后进入 docker 发现变量 proxy 还是没变

2785 次点击
所在节点    程序员
6 条回复
isCyan
2017-04-23 15:02:39 +08:00
因为 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
isCyan
2017-04-23 15:07:09 +08:00
你要反代 google 这样搞是没用的,直接用我的 https://github.com/brentybh/onemirror 就可以了
lslqtz
2017-04-23 16:34:39 +08:00
建议你根据 env 开机启动个 sh 脚本写配置文件
kmm996
2017-04-23 18:09:41 +08:00
@isCyan 学习了,我试试
kmm996
2017-04-23 18:10:13 +08:00
@lslqtz 我试试试
kmm996
2017-04-23 21:09:40 +08:00
@isCyan 发现我之前用的就是你这个镜像

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/356785

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX