簡體   English   中英

無法在 docker-compose 中為 .env 文件設置不同的名稱

[英]Can't set a different name for .env file inside docker-compose

我正在為我們的項目重構和編寫一個新的 dockercompose,我遇到了一些非常奇怪的問題。

我的dockercompose里面有不同的服務,每一個都有自己的.env文件。 當然,所有 .env 文件都在 docker-compose 文件的同一目錄中。

為了簡化我的測試,現在我只使用 docker-compose 中的一項服務。

如果我將 .env 文件命名為“.env”,一切正常,但是如果我嘗試將其命名為“userservice.env”,docker compose 可以找到該文件,但它無法讀取一些變量,例如 git 集線器訪問密鑰和用戶名。

那是我的 docker-compose:

    version: '3.8'

services:
  db:
    image: mariadb:10.5.2
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
    container_name: exampledb
    ports:
      - "4040:3306"
    volumes:
      - ./initmysqldb:/docker-entrypoint-initdb.d
  adminer:
    image: adminer
    restart: always
    ports:
      - "${DOCKER_ADMINER_HOST_PORT:-38088}:8080"
  app-user-area:
    image: user_area
    build:
      context: ./user-area
      network: host
      args:
        GITLAB_ACCESS_KEY: "${GITLAB_ACCESS_KEY}"
        GITLAB_LOGIN: "${GITLAB_LOGIN}"
        NODE_VER: "${NODE_VER}"
    ports:
      - "${DOCKER_APP_HOST_PORT:-8088}:4000"
      - "${DOCKER_DELVE_HOST_PORT:-48088}:40000"
    env_file: 
      - userservice.env
    restart: always
    links:
      - db
      - adminer

.env 文件:

....other info

# GITLAB
# ------------------------------------------------------------------------------
GITLAB_ACCESS_KEY=git_access_key
GITLAB_LOGIN=git_login

...other info

如果我將文件命名為“userservice.env”(然后我當然也在 dockercompose 中調用它),控制台給我的錯誤是:

The "GITLAB_ACCESS_KEY" variable is not set. Defaulting to a blank string. 

只有當“.env”文件被稱為“userservice.env”時才會發生這種情況。 奇怪的是,顯然 dockercompose 可以找到 .env 文件(如果我將其命名為“example.env”而不更改 docker-compose 中的名稱,則該進程無法運行並出現“userservice.env not found”錯誤)但它不能只讀取里面的環境變量。

最后,其他奇怪的事情是,如果我添加其他服務,其中一個有一個“.env”文件,其他有“custom1.env”、“custom2.env”……文件,一切正常。 看起來 docker 至少需要一個名為“.env”的文件。

任何幫助,將不勝感激。

完全是我的錯,我混合了 .env 和 env_file。

為了解決我的問題,我在 docker-compose 的同一目錄中創建了 a.env,其中包含 compose 調用的所有變量。

在 env_file 部分中,我傳遞了服務使用的 .env 文件。

基本上,我們必須記住 .env 不同於 env_file

暫無
暫無

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

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