node.js - ECS 无法识别容器定义中设置的 .env 值
问题描述
目标
我正在尝试将我的 NodeJS ExpressJS API 部署在我的 EC2 中运行的Docker容器中。
我不确定为什么我的容器无法识别我通过容器定义创建的 .env 的值。
当我运行时,npm start
我得到了这个错误。
如何进一步调试呢?
解决方案
对此的任何提示/建议/帮助将不胜感激!
您可能会在这里一一检查两件事:
通过在容器 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
,如果您使用任何其他模块,请检查容器上是否存在所有必需的文件。
推荐阅读
- javascript - 在 javascript 中下载图像时出现网络错误
- oauth - 如何获取 Slack API 的用户令牌?
- c++ - 在 WSL 中通过 C++ 关闭和重新启动 PC
- python - Python3中使用单元测试和正常做测试的区别
- mule - 资源失败:未找到 (404)。单元 4
- go - 即使设置了进程组 pid,Go 也不会杀死基于 GUI 的进程
- actions-on-google - 智能家居模式特征未显示在 UI 中
- mongodb - 如何使用聚合在 mongoDB 中进行分组
- bash - 在运行交互式命令之前和之后运行命令
- java - 在Java中循环使用列表的有效方法