【问题标题】:docker-compose load .env from dynamic pathdocker-compose 从动态路径加载 .env
【发布时间】:2020-09-14 05:24:29
【问题描述】:

我有以下结构

项目根.env 定义了./docker/dev/.env./docker/prod/.env 的路径,如下所示:

environment=dev
dot_env_path=./docker/dev/.env

我的 docker-compose.yml 包含以下服务 sn-p:

services:
    db:
        image: mysql:5.7
        command: --default-authentication-plugin=mysql_native_password
        restart: always
        env_file: ${dot_env_path} <--notice this variable points to the actual .env
        environment:
            - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
            - MYSQL_USER=${MYSQL_USER}
            - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        ports: 
            - 3306:3306
        expose: 
            - 3306
        volumes:
            - db-tmc:/var/lib/mysql

但是,当我执行docker-compose build 时,我收到以下警告;它没有检测到${dot_env_path} 并没有加载它的内容

任何想法,非常感谢?

【问题讨论】:

标签: docker docker-compose env-file


【解决方案1】:

如果您使用env_file 选项,请不要使用environment:。它会覆盖已经从env_file: 选项添加到环境中的变量

改用这个。

services:
    db:
        image: mysql:5.7
        command: --default-authentication-plugin=mysql_native_password
        restart: always
        env_file: ${dot_env_path}   
        ports: 
            - 3306:3306
        expose: 
            - 3306
        volumes:
            - db-tmc:/var/lib/mysql

【讨论】:

    猜你喜欢
    • 2017-09-25
    • 2018-09-07
    • 2019-10-20
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 2018-06-15
    相关资源
    最近更新 更多