繁体   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