Vite 在运行时使用环境变量。如果我想从 ECR 部署到 ECS,如何为 AWS 上的后端 URL 提供 ALB URL?

问题描述 投票:0回答:1

我有一个项目,它是一个全栈Web应用程序,由前端(vite ecs容器)和后端(java spring boot ecs容器)组成。 ALB 将指向前端和后端。我的 terraform 文件将 ALB URL 作为环境变量提供给前端的任务定义,以便它可以建立此连接。我的容器存储在 AWS ECR 中。我希望这是一个简单的过程,这样我就可以简单地在我的机器上构建容器并运行 terraform。

我的主要问题是 vite 在构建时使用环境变量,而不是运行时。因此,当我运行 npm build 时,它将本地计算机上的环境变量注入到新创建的映像中(不正确!)。我希望它使用输入到任务定义中的环境变量!否则我必须运行部署脚本,使用手动更新的 URL 构建新映像,然后再次运行部署脚本

我可以让我的镜像构建在 docker 镜像上吗?或者有没有更好的方法来拉下这个网址?

我查看了这个包,但无法让它工作,似乎不适合这个目的:https://github.com/andrewmclagan/react-env

我还考虑过是否可以将其上传到 nginx.conf 上,但这似乎是一件很难弄清楚的事情。

对于 docker-in-docker 也类似。

amazon-web-services docker nginx vite amazon-ecs
1个回答
0
投票

从字里行间看出,这实际上是一个 nginx 容器,为 React 应用程序提供服务?如果这是由与后端相同的负载均衡器提供的服务,您是否可以让您的 React 代码简单地检查当前主机名是什么(window.location.hostname),并使用它来构建后端 API URL? – 马克·B 14 小时前评论过

© www.soinside.com 2019 - 2024. All rights reserved.