问题描述
我一直致力于通过 Google App Engine 部署全栈应用程序。如果我尝试让 App Engine 从源代码构建,Google 的构建包显然不知道如何处理我的 Yarn 工作区依赖 URL。所以对于客户端,我只是在本地构建并部署静态资产。没问题。 (这是 Deploying yarn workspace monorepo app with internal dependencies to Google App Engine 的部分解决方法,更确切地说,How can I deploy to Google App Engine an app that depends on a yarn workspaces without publishing the packages to a npm registry?)
这对客户端来说很好,但我在部署后端时遇到了问题:显然,服务器应该侦听 App Engine 环境的 PORT env var。我能想到的唯一方法是部署源代码并允许它通过 Google App Engine 构建;但是,正如我所提到的,这与工作区依赖 URL 不兼容。如果我在部署到 GAE 之前在本地构建它,节点应用程序仍然运行(甚至可以执行出口),但是因为它没有侦听 PORT env var,服务器不接受任何请求。我不想发布后端的工作区级 deps。
我确定有人必须有部署 node 应用程序的经验,该应用程序依赖于 Yarn 工作区级依赖项和生产环境范围环境变量。你能给我一些指导吗?
解决方法
(编辑:最好采用 jonrsharpe 在上述评论中描述的范式——也就是说,从实际生产环境(即 App Engine)中检索环境变量,而不是将它们烘焙到构建中。)
我只需要监听 8081 端口(即在本地构建,将 PORT 设置为 8081,然后部署构建的服务器)。也许 8080 被默认服务(在我的情况下是客户端)或 nginx 占用。我不太确定,但我现在要继续。