V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
my101du
V2EX  ›  问与答

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

  •  
  •   my101du · 2016-05-17 10:03:09 +08:00 · 2621 次点击
    这是一个创建于 3107 天前的主题,其中的信息可能已经有所发展或是发生改变。
    docker 初学者。

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

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

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

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

    那么如何可以做到在开发环境和生产环境分别维护两个不同的 .env 呢?
    9 条回复    2016-05-17 16:14:06 +08:00
    kslr
        1
    kslr  
       2016-05-17 10:08:19 +08:00
    不是有.env.example
    my101du
        2
    my101du  
    OP
       2016-05-17 10:10:19 +08:00
    @kslr 对,现在是在 Dockerfile 里写 CP .env.example app/.env 的。
    你的意思是说,我直接把生产环境需要的参数写在 .env.example 里?但是这样和别人共享代码库的时候不是大家都能看到敏感的 appid , key 等信息了吗?
    xujif
        3
    xujif  
       2016-05-17 10:34:56 +08:00
    @my101du 也可以直接不要 env ,直接写在 docker-compose 里或者干脆直接写在 Dockerfile 里
    xujif
        4
    xujif  
       2016-05-17 10:35:13 +08:00
    不过需要修改 phpfpm 选项加载系统变量
    gamexg
        5
    gamexg  
       2016-05-17 12:23:33 +08:00 via Android
    2 各方法,
    1 、另建一个部署 docker 继承代码的那一个 docker ,然后这里面些配置文件。
    2 、环境变量
    zrp1994
        6
    zrp1994  
       2016-05-17 15:21:11 +08:00   ❤️ 1
    @my101du
    .env 文件是可以食用系统环境变量的
    例如:
    DB_PASSWORD="${123456}"
    我自己的做法是把敏感的信息通过 docker-compose 的 env_file 参数暴露给 container ,然后.env 可以通过上面这种方式从环境变量里读取这些敏感信息。
    zrp1994
        7
    zrp1994  
       2016-05-17 15:22:12 +08:00
    @my101du
    打错了,应该是
    DB_PASSWORD="${SYS_ENV_VAR}"
    zrp1994
        8
    zrp1994  
       2016-05-17 15:25:04 +08:00
    @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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6199 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:53 · PVG 10:53 · LAX 18:53 · JFK 21:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.