首页 > 解决方案 > ECS 无法识别容器定义中设置的 .env 值

问题描述

目标

我正在尝试将我的 NodeJS ExpressJS API 部署在我的 EC2 中运行的Docker容器中。

我不确定为什么我的容器无法识别我通过容器定义创建的 .env 的值。

在此处输入图像描述

当我运行时,npm start我得到了这个错误。

在此处输入图像描述

如何进一步调试呢?

标签: node.jsamazon-web-servicesexpressdockeramazon-ecs

解决方案


对此的任何提示/建议/帮助将不胜感激!

您可能会在这里一一检查两件事:

  • 通过在容器 shell 命令中明确列出它们,您的 env 变量实际上已正确传递给正在运行的容器(应该是这种情况),如下所示:

    echo $ADMIN_PWD # and so on other variables to make sure they have values...
    

    我的假设是您应该在这里看到正确的值。如果你不这样做,那么你应该看看在容器初始化期间是否以某种方式将它们擦掉。

  • 如果第一步没问题,您应该检查 nodeJS 是否正确读取可用的 ENV 变量。您可以通过多种方式从代码中读取它们(process.env.VARNAME或者通过从.env文件中读取它们并使用其他模块而不是dotenv这样做......)。检查运行中的容器.env文件是否存在并正确填充,因为它经常打开.gitignore,如果您使用任何其他模块,请检查容器上是否存在所有必需的文件。


推荐阅读