reactjs - Google App Engine - app.yaml 中定义的 Node.js 入口点未触发
问题描述
我有一个 node.js 应用程序,它已经被 Dockerizedgcr.io/google-appengine/nodejs
并部署和运行良好。知道默认情况下 GAE 将运行 package.json 中的“启动”脚本,我只是简单地将已经存在的next start -p 8080
内容替换为运行没有问题的内容。
我想触发一个替代脚本而不是“开始”,所以我创建了一个名为“cloud-start”的脚本并将上述命令作为值插入。在 app.yaml 我添加了“入口点”属性并yarn cloud-run
作为值:
runtime: custom
env: flex
entrypoint: yarn cloud-start
service: my-app
vm_health_check:
enable_health_check: False
manual_scaling:
instances: 1
resources:
memory_gb: 4
不过,“cloud-start”脚本从未执行过——我什至尝试用“npm”替换“yarn”,但仍然没有运气。为什么我的入口点不会触发?
这是我的 Dockerfile,以防万一:
# Use the base App Engine Docker image, based on Ubuntu 16.0.4.
FROM gcr.io/google-appengine/nodejs
# Install locate for debugging purposes
RUN apt-get update -y && \
apt-get install --no-install-recommends -y -q \
locate
COPY . /app
WORKDIR /app
RUN npm install --global yarn
RUN yarn
RUN yarn static
EXPOSE 8080
解决方案
试试entrypoint: npm run cloud-start
它对我有用。
这个答案的解释可以在这里找到:https ://issuetracker.google.com/issues/110097743#comment11
yarn
仅在构建时可用于安装您的依赖项。之后,yarn 可执行文件在 Node.js 运行时中不可用。
如果你想运行你的“dev”脚本,只需使用“start”:“npm run dev”
推荐阅读
- python - 如何将 openfoam 数据保存为 csv 文件?
- marklogic - 如何在部署时在 MarkLogic 中设置“启用审计”:false
- android - 布局 XML 中字符串格式的数据绑定
- presto - 使用 Facebook Presto SQL Parser 生成 SQL 语句
- algorithm - CSES范围查询问题:薪资查询
- css - 当我在本地运行良好时将文件上传到 github 时,Css 未正确应用。可能是什么原因?
- python - 在 Python 中,有没有办法找到两个日期之间的天数?
- tableau-api - 按画面中的最大日期分组
- javascript - 谷歌日历客户端javascript缺少刷新令牌
- python - 将字符串转换为二维数组python