小编Shi*_*Mai的帖子

如何将环境变量传递给 docker-compose 的应用程序

我想传递应用程序可以读取的环境变量docker-compose up

使用docker-compose up不同配置设置的正确方法是什么?

我不想使用.env& environment:config ,因为环境变量经常变化并且将令牌保存在文件中是不安全的。

docker-compose run -e确实有点作用,但失去了很多。它不映射docker-compose.yml服务中定义的端口。还定义了多个服务docker-compose.yml,我不想depends_on仅仅因为docker-compose up不起作用而使用。

假设我在 docker-compose.yml

    service-a:
        build:
          context: .
          dockerfile: DockerfileA
        command: node serviceA.js
Run Code Online (Sandbox Code Playgroud)

在 my 中serviceA.js,我只是使用环境变量:

console.log("This is ", process.env.KEY, "running in service A");
Run Code Online (Sandbox Code Playgroud)

当我运行时,docker-compose run -e KEY=DockerComposeRun service-a 我确实得到了 serviceA.js 读取的环境变量 KEY

This is  DockerComposeRun running in service A
Run Code Online (Sandbox Code Playgroud)

但是,我只能运行一项服务。


我可以用environment:docker-compose.yml

environment:
  - KEY=DockerComposeUp
Run Code Online (Sandbox Code Playgroud)

但是在我的用例中,每个 docker compose 都会有不同的环境变量值,这意味着我每次都需要在执行 …

environment-variables docker docker-compose

7
推荐指数
1
解决办法
5188
查看次数