簡體   English   中英

如何從.env文件獲取環境變量到docker-compose.yml?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM