Docker compose 不会使用 .env 变量 [NodeJS, Docker]
Docker compose won't use .env variables [NodeJS, Docker]
我想在 docker 撰写文件中使用我的环境变量。当我尝试 运行 它时,我为其中的每个变量都收到此错误,就像它们未定义一样:
The password variable is not set. Defaulting to a blank string.
一些上下文:
Docker-撰写:
version: '3.3'
services:
mysqldb:
image: mysql:8
restart: always
env_file: config.env
environment:
- MYSQL_ROOT_PASSWORD=$password
- MYSQL_DATABASE=$database
ports:
- $db_port:$db_docker_port
volumes:
- db:/var/lib/mysql
app:
depends_on:
- mysqldb
build: ./
restart: unless-stopped
env_file: config.env
ports:
- $port:$port_docker
environment:
- DB_HOST=mysqldb
- DB_USER=$user
- DB_PASSWORD=$password
- DB_NAME=$database
- DB_PORT=$db_docker_port
stdin_open: true
tty: true
volumes:
db:
config.env:
database=dbname
host=localhost
user=user
password=password
port=5005
port_docker=5004
db_port=3306
db_docker_port=3307
我是否错误地导入了 config.env 文件?
试试这个语法
env_file:
- config.env
您的环境变量文件应称为 .env
并且您使用语法 ${password}
.
来使用这些变量
当您希望在容器内部设置变量时,使用您完成它的方式 - 使用 env_file
语句。当你这样做时,你不能在 docker-compose 文件中使用它们。
您可以删除 docker-compose 文件中的 env_file 语句,除非您也需要其中的变量。但看起来你使用 docker-compose 文件传递了它们。
我想在 docker 撰写文件中使用我的环境变量。当我尝试 运行 它时,我为其中的每个变量都收到此错误,就像它们未定义一样:
The password variable is not set. Defaulting to a blank string.
一些上下文:
Docker-撰写:
version: '3.3'
services:
mysqldb:
image: mysql:8
restart: always
env_file: config.env
environment:
- MYSQL_ROOT_PASSWORD=$password
- MYSQL_DATABASE=$database
ports:
- $db_port:$db_docker_port
volumes:
- db:/var/lib/mysql
app:
depends_on:
- mysqldb
build: ./
restart: unless-stopped
env_file: config.env
ports:
- $port:$port_docker
environment:
- DB_HOST=mysqldb
- DB_USER=$user
- DB_PASSWORD=$password
- DB_NAME=$database
- DB_PORT=$db_docker_port
stdin_open: true
tty: true
volumes:
db:
config.env:
database=dbname
host=localhost
user=user
password=password
port=5005
port_docker=5004
db_port=3306
db_docker_port=3307
我是否错误地导入了 config.env 文件?
试试这个语法
env_file:
- config.env
您的环境变量文件应称为 .env
并且您使用语法 ${password}
.
当您希望在容器内部设置变量时,使用您完成它的方式 - 使用 env_file
语句。当你这样做时,你不能在 docker-compose 文件中使用它们。
您可以删除 docker-compose 文件中的 env_file 语句,除非您也需要其中的变量。但看起来你使用 docker-compose 文件传递了它们。