[英]How to get the environment variable from .env file on to a docker-compose.yml?
我有一個.env
文件和一個.env
-compose文件。 我使用env_file
-compose上的env_file
屬性引用env文件。 然后我使用變量插值來設置另一個環境變量,使用.env文件中定義的變量。 出於某種原因,Docker無法識別.env文件中定義的變量。
app.env :
MYSQL_DATABASE=wordpress
DB_USER=root
MYSQL_ROOT_PASSWORD=example
docker-compose.yml :
version: '3.1'
services:
wordpress:
container_name: 'wp'
build: .
restart: unless-stopped
links:
- mysql
env_file:
- app.env
environment:
- WORDPRESS_DB_USER=${DB_USER}
- WORDPRESS_DB_PASSWORD=${MYSQL_ROOT_PASSWORD}
- WORDPRESS_DB_NAME=${MYSQL_DATABASE}
ports:
- 80:80
看來你混淆了env_file配置選項的含義。 它將多個環境變量從外部文件傳遞到服務的容器。 它與environment
相同,但它們是從文件加載的。
如果你想.env
docker compose
識別.env
文件中定義的變量,它應該是.env文件。
為了達到您的需求,您需要:
1.將app.env
重命名為.env
:
mv app.env .env
2.從docker-compose.yaml
刪除env_file
配置選項:
version: '3.1'
services:
wordpress:
container_name: 'wp'
build: .
restart: unless-stopped
links:
- mysql
environment:
- WORDPRESS_DB_USER=${DB_USER}
- WORDPRESS_DB_PASSWORD=${MYSQL_ROOT_PASSWORD}
- WORDPRESS_DB_NAME=${MYSQL_DATABASE}
ports:
- 80:80
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.