NextJS应用程序无法识别AWS app Runner上的env变量



大家好。我的问题如下。我们使用NextJS应用程序,SSR作为我们服务的前端。我们希望通过docker镜像在AWS App Runner上部署所有内容。在本地,前端容器注册我们在.env.local中的所有env变量,但在App Runner上,所有的env变量都会变成undefined

当然,我们不希望在生产中使用.env文件。我们在App Runner的配置服务中设置了所有env变量,并使用NEXT_PUBLIC前缀,就像我们在SSR中应该使用的那样。但仍然一无所获。

有人对如何从这里开始有什么建议吗?

一种解决方案是在构建时使用Docker--build-args:定义公共环境变量

docker build --build-arg="CLIENT_VAR_FOO=foo" --build-arg="CLIENT_VAR_BAR=bar" ...

Dockerfile:

ARG CLIENT_VAR_FOO
ARG CLIENT_VAR_BAR
ENV NEXT_PUBLIC_CLIENT_VAR_FOO=${CLIENT_VAR_FOO}
ENV NEXT_PUBLIC_CLIENT_VAR_BAR=${CLIENT_VAR_BAR}

您可以在CI/CD中使用GitHub Actions secrets+环境变量之类的东西来定义它们。

最新更新