node.js - Azure App 服务设置不适用于 docker
问题描述
我是 Azure 部署和 DevOps 的新手,
这次我正在做一个小项目,使用自定义的 docker 映像创建一个带有 Azure App Service 的 NestJS API。使用正确的数据库连接凭据环境变量,一切都部署得很好。但是,当我尝试将这些环境变量替换为
配置服务.ts
const PORT = process.env.APPSETTING_PORT;
const MODE = process.env.APPSETTING_MODE;
const POSTGRES_HOST = process.env.APPSETTING_POSTGRES_HOST;
const POSTGRES_PORT : any = process.env.APPSETTING_POSTGRES_PORT;
const POSTGRES_USER = process.env.APPSETTING_POSTGRES_USER;
const POSTGRES_PASSWORD = process.env.APPSETTING_POSTGRES_PASSWORD;
const POSTGRES_DATABASE = process.env.APPSETTING_POSTGRES_DATABASE;
,在 azure 中创建应用程序后,我在 Azure CLI 上使用此命令分配值:
az webapp config appsettings set --resource-group <my_rs_group> --name <my_app_name> --settings WEBSITES_PORT=80 APPSETTING_POSTGRES_HOST=<my_host_name>\ APPSETTING_POSTGRES_PORT=5432 APPSETTING_POSTGRES_DATABASE=postgres \ APPSETTING_POSTGRES_USER=<my_user_name> APPSETTING_POSTGRES_PASSWORD=<my_host_pw>\ APPSETTING_PORT=80 APPSETTING_MODE=PROD APPSETTING_RUN_MIGRATION=true
我已经被这个问题困扰了 2 天,并且在网站上经历了许多类似的线程,但我无法解决这个问题,docker 容器运行时日志总是显示这些环境变量无法应用。
解决方案
我正在回答我自己的问题,因为我找到了解决这个问题的线程,尽管由于某种原因这个问题不受欢迎,将它链接到这里,
尝试从已部署的 create-react-app 中的公用文件夹中获取 json 文件时出现 404 错误
令人烦恼的是,微软没有在他们的文档中明确指出,对于 nodejs 环境,需要设置const {env} = process;
和访问它PORT = env.APPSETTING_PORT;
,例如,这将有助于服务器在 docker 运行时正确应用应用程序设置变量。
希望遇到这个问题的人不要浪费时间。
推荐阅读
- javascript - 在 javascript 中将自动完成设置为 off 以外的值
- css - 为什么我的背景图像似乎被 bgsize "contain" 拉伸了?
- python - 通过具有相同值三次或更多次来过滤每一列
- angular - NgRx - 可选地从效果中返回一个或两个动作
- python - 当响应文本没有显示在浏览器中的所有内容时,如何使用 BeautifulSoup 抓取 Web 内容?
- java - MqttAsyncClient 客户端未连接 (32104)
- html - 手动订购 Jekyll 合集
- java - 这段 jTable 插入代码中存在什么错误?
- c - 将变量的地址分配给另一个变量
- java - 字符串字谜的边界条件