如何从docker-compose.yml中的.env文件中注入变量

如何从docker-compose.yml中的.env文件中注入变量,docker,docker-compose,Docker,Docker Compose,为什么我的.env变量没有注入我的docker-compose.yml 我有一个文件夹,其中包含: .env文件: NPM_TOKEN=<NPM_TOKEN> 当我运行docker compose-up--build 但是,当我直接将值保存到docker compose.yml中时,它会起作用: docker-compose.yml version: "3" services: msaccountpublic: build: conte

为什么我的.env变量没有注入我的docker-compose.yml

我有一个文件夹,其中包含:

.env文件:

NPM_TOKEN=<NPM_TOKEN>
当我运行
docker compose-up--build

但是,当我直接将值保存到
docker compose.yml
中时,它会起作用:

docker-compose.yml

version: "3"

services:
  msaccountpublic:
    build:
      context: ../app
      dockerfile: Dockerfile
      args:
        NPM_TOKEN: ${NPM_TOKEN}
    command: npm start
version: "3"

services:
  msaccountpublic:
    build:
      context: ../app
      dockerfile: Dockerfile
      args:
        NPM_TOKEN: <NPM_TOKEN> (the value directly hard coded here)
    command: npm start
版本:“3”
服务:
msaccountpublic:
建造:
上下文:../app
dockerfile:dockerfile
args:
NPM_标记:(此处直接硬编码的值)
命令:npm start

但是,我想在没有个人凭据的情况下提交docker-compose.yml

您可以通过
docker-compose build--build arg NPM_TOKEN=123传递build arg
是的,但是有没有办法将其存储在外部文件中?我的最小示例与您描述的完全相同。能否在docker文件的开头添加
运行echo“$NPM_TOKEN”
,并测试它是否真的无法读取令牌?哦,只是为了验证一下,您是
。env
文件与
docker compose.yml
位于同一文件夹中?您正在该文件夹中执行
docker compose up--build
?运行echo“$NPM_TOKEN”不会打印任何内容是的,这正是我尝试的。您可以通过
docker compose build--build arg NPM_TOKEN=123传递build arg,但是有没有办法将其存储在外部文件中呢?我的示例与您描述的完全相同。能否在docker文件的开头添加
运行echo“$NPM_TOKEN”
,并测试它是否真的无法读取令牌?哦,只是为了验证一下,您是
。env
文件与
docker compose.yml
位于同一文件夹中?您正在执行此文件夹中的
docker compose up--build
?运行echo“$NPM_TOKEN”不会打印任何内容是的,这正是我尝试的。