[英]getting `sh: 1: exec: nest: not found` error deploying nestjs to google app engine
我正在尝试将我的 nestjs 应用程序部署到谷歌应用程序引擎,但我得到sh: 1: exec: nest: not found
错误
我的 package.json
"main": "dist/main.js",
"scripts": {
"prebuild": "rimraf dist",
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"start": "nest start",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json",
"gcp-build": "npm run build",
"ae:deploy": "gcloud app deploy --quiet",
"ae:browse": "gcloud app browse",
"@nestjs/cli": "^8.0.0",
}
DockerFile
FROM node:14-alpine
WORKDIR /usr/src/app
ENV NODE_ENV=production
COPY package*.json ./
RUN npm install -g @nestjs/cli@8
RUN npm install
COPY . ./
RUN npm run build
CMD [ "npm", "run", "start:prod" ]
app.yaml
runtime: nodejs14
service: default
instance_class: F1
env_variables:
NODE_ENV: 'production'
CloudBuild.yaml
steps:
- name: "gcr.io/cloud-builders/docker"
args:
- build
- "--tag=gcr.io/cmor-baas-dev/kafka-connector:latest"
- "--file=Dockerfile"
- .
images:
- "gcr.io/cmor-baas-dev/kafka-connector"
timeout: 1800s
我认为 Dockerfile 和 CloudBuild.yaml 文件都被忽略(我是谷歌应用引擎的新手,不确定我们是否需要这些文件)
基于这里,
您在 devDependencies 字段下定义的所有依赖项都将被忽略,并且不会在 App Engine 中为您的应用安装。
所以我将@nestjs/cli
移动到我的 package.json 中的dependencies
项,仍然是同样的错误
如果其他人来此帖子寻找答案:
需要进行两项更改:
1-将启动脚本更新为"start": "node dist/main.js"
2- 将@nestjs/cli
从devDependency
到dependency
项
然后它开始工作
ps 不需要 CloudBuild.yaml 或 Dockerfile
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.