【问题标题】:How to enable 12-factor application bundling with Next.js?如何使用 Next.js 启用 12 因素应用程序捆绑?
【发布时间】:2023-02-05 14:29:49
【问题描述】:

阅读有关 environment variables 的 Next.js 文档 -

为了保证仅服务器机密的安全,Next.js 将 process.env.* 替换为正确的值构建时间.

这是否意味着环境变量可用构建时间Next.js 应用程序在运行时唯一可用的变量是什么?这似乎有问题,因为这意味着我必须为每个环境构建!

而且,如果是这种情况,我如何让我的应用程序采用12-factor交付?我想将 Next.js 应用程序打包为我必须构建的 Docker 映像仅有的一次然后部署到三个不同的环境 -测试,分期进而生产在 Azure PaaS 上。

【问题讨论】:

  • 哇,这确实很糟糕。看起来很多人似乎已经习惯了(不正确的,IMO)在他们通过 envs 时重建应用程序的概念。
  • @亚当是的。我同意。这些是要遵循的一些古老的黄金原则,最糟糕的是,问题本身就结束了:(

标签: javascript node.js next.js


【解决方案1】:

您可以使用边车代理。 Istio 使用了这个模式。没有什么能阻止您直接使用 envoy 或 nginx 来实现该模式。

您添加一个位于 nextjs 应用旁边的代理,它接受传出流量并将其路由到正确的 API。由于代理具有本地地址,因此可以在 nextjs 应用程序中对其进行静态寻址,并在稍后重新配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    相关资源
    最近更新 更多