【问题标题】:Why doesn´t docker-compose env_file work but environment does?为什么 docker-compose env_file 不起作用,但 environment 起作用?
【发布时间】:2017-07-01 14:01:21
【问题描述】:

当我在 docker-compose.yml 中使用 env_file 时,它​​可以正确构建,但是当我尝试使用 docker-compose 时,我的节点应用程序无法在 process.env 对象中找到 env_file 变量。

这是我的 docker-compose 文件:

node1:
container_name: node01
env_file: ./env/node1.production.env
#environment:
  #- SOME_VALUE=9599
build:
  context: ./node1
  dockerfile: dockerfile
ports:
  - "3000:3000"  
networks:
  - dev_net

这是我的 node1.production.env 文件:

SOME_VALUE=9599

当我改用环境时,我的节点应用程序运行良好:

DOCKER 版本: 17.03
DOCKER COMPOSE 版本: 1.14
操作系统: CentOS

【问题讨论】:

  • 嗨 Mohamed,欢迎来到 SO。谢谢你的问题。请花点时间查看此页面并查看如何正确格式化(以便其他人可以更轻松地帮助您):stackoverflow.com/help/how-to-ask
  • 你能概括一下这个,以便有人可以复制吗?我们没有您的代码或Dockerfile 可复制。也许您可以尝试gist.github.com/andyshinn/3034fa88e679e6357294e7a9b16b8197 作为开始,看看它是否正常工作?这是我的例子,效果很好。
  • 我试图将 node1.production.env 的名称更改为 otherName.production.env 并且它有效,似乎我已经导出了具有该名称的变量,现在我正在尝试动态更改 .production将 .stage 或 .test 变成类似 node_app.stage.env 的东西...你该怎么做?

标签: node.js docker docker-compose


【解决方案1】:

它应该工作。我猜您可能在node1.production.env 文件中多次定义了变量。验证 env 文件是否正确。

从您提供的代码来看,您使用的语法似乎没有错误,如果有,甚至在开始构建之前就会报告它们。就我而言,我使用 env 文件如下:

env_file:
  - .env

.env 命名文件存在于基目录中。

【讨论】:

    猜你喜欢
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多