V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
my101du
V2EX  ›  问与答

请教部署在 docker (daocloud) 上的 Laravel 应用,如何做到开发环境和生产环境的 .env 配置参数分离?

  •  
  •   my101du · May 17, 2016 · 3096 views
    This topic created in 3638 days ago, the information mentioned may be changed or developed.
    docker 初学者。

    按照 daocloud 的官方教程,做了一个 Laravel 的镜像,然后用它部署了一个应用(从 conding.net 上抓取最新 push 的代码)。

    因为本地的 .gitignore 文件里 .env 是排除的,所以在 Dockerfile 里写了两句命令,一句是生成 .env 文件,一句是运行 php artisan key:generate

    所以就导致每次更新应用,都会覆盖掉生产环境的 .env ,并且得不到我本地开发环境 .env 最新的一些配置参数。

    我没有 daocloud 高级账号的“终端”权限,所以没法进去手动修改这个 .env 文件。

    那么如何可以做到在开发环境和生产环境分别维护两个不同的 .env 呢?
    9 replies    2016-05-17 16:14:06 +08:00
    kslr
        1
    kslr  
       May 17, 2016
    不是有.env.example
    my101du
        2
    my101du  
    OP
       May 17, 2016
    @kslr 对,现在是在 Dockerfile 里写 CP .env.example app/.env 的。
    你的意思是说,我直接把生产环境需要的参数写在 .env.example 里?但是这样和别人共享代码库的时候不是大家都能看到敏感的 appid , key 等信息了吗?
    xujif
        3
    xujif  
       May 17, 2016
    @my101du 也可以直接不要 env ,直接写在 docker-compose 里或者干脆直接写在 Dockerfile 里
    xujif
        4
    xujif  
       May 17, 2016
    不过需要修改 phpfpm 选项加载系统变量
    gamexg
        5
    gamexg  
       May 17, 2016 via Android
    2 各方法,
    1 、另建一个部署 docker 继承代码的那一个 docker ,然后这里面些配置文件。
    2 、环境变量
    zrp1994
        6
    zrp1994  
       May 17, 2016   ❤️ 1
    @my101du
    .env 文件是可以食用系统环境变量的
    例如:
    DB_PASSWORD="${123456}"
    我自己的做法是把敏感的信息通过 docker-compose 的 env_file 参数暴露给 container ,然后.env 可以通过上面这种方式从环境变量里读取这些敏感信息。
    zrp1994
        7
    zrp1994  
       May 17, 2016
    @my101du
    打错了,应该是
    DB_PASSWORD="${SYS_ENV_VAR}"
    zrp1994
        8
    zrp1994  
       May 17, 2016
    @my101du
    @xujif
    确实需要修改 phpfpm 的配置,可以参考 https://github.com/ppoffice/docker-laravel-phpfpm/blob/master/Dockerfile#L6
    我这里是把所有的环境变量都暴露给 docker ,当然你也可以选择性的暴露指定参数(参见: https://github.com/dylanlindgren/docker-laravel-phpfpm/blob/master/Dockerfile#L39
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2561 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 14:56 · PVG 22:56 · LAX 07:56 · JFK 10:56
    ♥ Do have faith in what you're doing.