V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kmm996
V2EX  ›  程序员

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

  •  
  •   kmm996 · 2017-04-23 14:46:39 +08:00 · 2964 次点击
    这是一个创建于 2797 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    dockerfile Markdown

    build Markdown

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

    Markdown

    6 条回复    2017-04-23 21:09:40 +08:00
    isCyan
        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
    isCyan
        2
    isCyan  
       2017-04-23 15:07:09 +08:00
    你要反代 google 这样搞是没用的,直接用我的 https://github.com/brentybh/onemirror 就可以了
    lslqtz
        3
    lslqtz  
       2017-04-23 16:34:39 +08:00
    建议你根据 env 开机启动个 sh 脚本写配置文件
    kmm996
        4
    kmm996  
    OP
       2017-04-23 18:09:41 +08:00 via Android
    @isCyan 学习了,我试试
    kmm996
        5
    kmm996  
    OP
       2017-04-23 18:10:13 +08:00 via Android
    @lslqtz 我试试试
    kmm996
        6
    kmm996  
    OP
       2017-04-23 21:09:40 +08:00
    @isCyan 发现我之前用的就是你这个镜像
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5361 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:59 · PVG 14:59 · LAX 22:59 · JFK 01:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.