1

我有以下结构

在此处输入图像描述

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

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

我的 docker-compose.yml 包含以下服务片段:

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构建时,我会收到以下警告;它没有检测${dot_env_path}并加载它的内容

在此处输入图像描述

任何想法,非常感谢?

4

1 回答 1

1

environment:如果您正在使用该env_file选项,请不要使用。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
于 2020-05-27T13:04:06.347 回答