簡體   English   中英

docker-compose env 文件在 yml 中工作但不使用命令行參數

[英]docker-compose env file working in yml but not with command line arguments

我有一個 docker-compose 文件,它看起來像:

version: '3.8'
services:
    scheduler:
        image: apache/airflow
        command: scheduler
        restart: on-failure
        env_file:
            - .env
        volumes:
            - ./dags:/opt/airflow/dags
            - ./logs:/opt/airflow/logs
    webserver:
        image: apache/airflow
        entrypoint: ./scripts/entrypoint.sh
        restart: on-failure
        depends_on:
            - scheduler
        env_file:
            - .env
        volumes:
            - ./dags:/opt/airflow/dags
            - ./logs:/opt/airflow/logs
            - ./scripts:/opt/airflow/scripts
        ports:
            - "8080:8080"

它在運行docker-compose up按預期docker-compose up 但是,如果我從 yml 中刪除env_file選項並將其傳遞到 CLI - docker-compose --env-file .env up ,則它不會從文件中選擇環境變量的值。

發生這種情況是因為 CLI 中的--env-file和 service 部分中的env_file並不完全相同。

前者實際上是 compose 將用來替換 docker-compose.yml 中的變量的文件的規范(默認值為 .env)。

后者指定將從中加載變量並將其傳遞給服務容器的文件。

是的,這有點令人困惑。

參考:

閱讀這個這個

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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