• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kmm996
V2EX  ›  程序员

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

  •  
  •   kmm996 · Apr 23, 2017 · 3715 views
    This topic created in 3336 days ago, the information mentioned may be changed or developed.

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

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

    dockerfile Markdown

    build Markdown

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

    Markdown

    6 replies    2017-04-23 21:09:40 +08:00
    isCyan
        1
    isCyan  
       Apr 23, 2017   ❤️ 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  
       Apr 23, 2017
    你要反代 google 这样搞是没用的,直接用我的 https://github.com/brentybh/onemirror 就可以了
    lslqtz
        3
    lslqtz  
       Apr 23, 2017
    建议你根据 env 开机启动个 sh 脚本写配置文件
    kmm996
        4
    kmm996  
    OP
       Apr 23, 2017 via Android
    @isCyan 学习了,我试试
    kmm996
        5
    kmm996  
    OP
       Apr 23, 2017 via Android
    @lslqtz 我试试试
    kmm996
        6
    kmm996  
    OP
       Apr 23, 2017
    @isCyan 发现我之前用的就是你这个镜像
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2939 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 14:58 · PVG 22:58 · LAX 07:58 · JFK 10:58
    ♥ Do have faith in what you're doing.