npm run start:debug
运行# npm run start:debug
> [email protected] start:debug /usr/src/api
> nest start -e "node --inspect-brk 0.0.0.0:9229" --watch -p tsconfig.json
sh: 1: nest: not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! [email protected] start:debug: `nest start -e "node --inspect-brk 0.0.0.0:9229" --watch -p tsconfig.json`
npm ERR! spawn ENOENT
表明我已经安装了:
npm ls --depth=0
为什么找不到Nest Cli二进制?我的设置 这就是我发射外壳的方式:
@nestjs/cli
# npm ls --depth=0
[email protected] /usr/src/api
+-- @nestjs/[email protected]
+-- @nestjs/[email protected]
...
docker-compose -f docker-compose-base.yml -f docker-compose-dev.yml run api /bin/sh
the nest CLI需要在全球安装命令行才能工作。看起来您通过
# -base
version: '3'
services:
api:
build: .
restart: on-failure
volumes:
- /usr/src/api/node_modules
container_name: api
# -dev
version: '3'
networks:
# Use lb_lbnet network created by the load balancer repo (lb)
# We do this because we need the load balance to resolve container names defined here to forward traffic
# This is only needed for dev
default:
external:
name: lb_lbnet
services:
db:
image: postgres:11
container_name: db
restart: always
env_file:
- ./db.env # uses POSTGRES_DB and POSTGRES_PASSWORD to create a fresh db with a password when first run
volumes:
- ./postgres-data:/var/lib/postgresql/data
# only used to upload DB dump:
# - ./backup:/tmp/backup
api:
restart: 'no'
build:
context: .
args:
NODE_ENV: development
depends_on:
- db
ports:
- 9229:9229
volumes:
- ./:/usr/src/api
- ./node_modules:/usr/src/api/node_modules
# enable to debug hgezim-express-shopify-auth
- ../../hgezim-express-shopify-auth:/usr/hgezim-express-shopify-auth
env_file:
- .env
command: /bin/bash -c 'echo "Starting" && npm install && npm run start:debug'
在本地安装了它,因此没有将巢添加到路径中。要么将
FROM node:12
WORKDIR /usr/src/api
COPY package*.json ./
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
RUN npm install # && npm ls --depth=0 # commented this out since it returns non-zero exit code
COPY . .
VOLUME [ "/usr/src/api/node_modules" ]
RUN ["/usr/local/bin/npm", "run","lint"]
RUN ["/usr/local/bin/npm", "run","build"]
# not using an execution list here so we get shell variable substitution
CMD /bin/bash -c 'npm run start:$NODE_ENV'
添加到您的Dockerfile,要么更改
package.json
脚本以使用本地版本(类似于
RUN npm install -g @nestjs/cli
在我的情况下,VM中的Nestjs CLI缺少,所以我跑了
DockerPull Nestjs/cli,它起作用了。 拉出Nestjs CLI图像,然后尝试运行Docker组成 - 建造。如果仍然存在问题,请将运行安装-G @nestjs/cli放在您的Docker文件中。现在必须运行良好。