簡體   English   中英

如何通過命令行指定在 docker-compose 中使用哪個 env_file

[英]How to specify which env_file is used in docker-compose via command line

我正在嘗試以通用方式設置docker-compose文件,以便我可以在一台或多台服務器上創建數據庫的多個分片。

容器之間會發生變化的選項是:

  1. 容器名稱
  2. 環境文件
  3. 港口
  4. 暴露

所以我想要一個像下面這樣的通用docker-compose.yml文件,除了我不知道如何通過命令行設置env_file指令,比如

docker-compose up --build --env-file="path/to/shard1.env"
docker-compose up --build --env-file="path/to/shard2.env"

這是可能的,還是我以錯誤的方式解決這個問題?

version: "3"
services:
  shard:
    build: 
        context: ./database
    container_name: "${SHARD_NAME}"
    restart: on-failure
    volumes:
        - "${SHARD_DIRECTORY}:/database"
    env_file: 
      - "${ENV_FILE}"
    ports:
      - "${PORT}:8000"
    expose:
      - "${PORT}"
    networks:
      - my_network
networks:
  my_network:

從我的終端:

docker-compose --help
[...]
Options:
[...]
  --env-file PATH             Specify an alternate environment file

測試成功(將圖像名稱傳遞給撰寫文件...)

docker-compose --env-file .env-alt up -d
docker-compose --env-file .env-alt down

您的問題命令有誤:

  • value 和 option 之間的等號 => 它必須被刪除
  • 選項的位置 => 它是一個全局選項,必須出現在命令之前

暫無
暫無

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

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