Docker compose docker撰写ts节点问题

Docker compose docker撰写ts节点问题,docker-compose,nestjs,ts-node,Docker Compose,Nestjs,Ts Node,我是一名docker初学者,尝试将简单的项目作为我学习旅程的一部分。。 我正在尝试将NestJS项目dockerize,但是dockercomposeup命令失败 我的Dockerfile和docker compose.*文件如下所示。我尝试过对Dockerfile和docker compose文件进行各种更改,但没有成功。。有人能发现问题或我遗漏的东西吗 Dockerfile FROM node:12.10 RUN mkdir -p /usr/src/app WORKDIR /usr/sr

我是一名docker初学者,尝试将简单的项目作为我学习旅程的一部分。。 我正在尝试将NestJS项目dockerize,但是
dockercompose
up命令失败

我的Dockerfile和docker compose.*文件如下所示。我尝试过对Dockerfile和docker compose文件进行各种更改,但没有成功。。有人能发现问题或我遗漏的东西吗

Dockerfile

FROM node:12.10

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm build

docker compose.yml

version: '3'
services:
  app:
    build: .
    ports:
      - '8081:8081'
version: '3'
services:
  app:
    command: npm start
    volumes:
      - .:/usr/src/app
    environment:
      - NODE_ENV=development

docker compose.dev.yml

version: '3'
services:
  app:
    build: .
    ports:
      - '8081:8081'
version: '3'
services:
  app:
    command: npm start
    volumes:
      - .:/usr/src/app
    environment:
      - NODE_ENV=development

这是我运行的命令

docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
命令失败,错误如下

Attaching to nestjs-api-server_app_1
app_1  |
app_1  | > BookAPI@0.0.1 start /usr/src/app
app_1  | > npm run copy-resources && nodemon --watch src -e ts,tsx --exec ts-node src/main.ts
app_1  |
app_1  |
app_1  | > BookAPI@0.0.1 copy-resources /usr/src/app
app_1  | > ts-node scripts/copy-resources.ts
app_1  |
app_1  | sh: 1: ts-node: not found
app_1  | npm ERR! code ELIFECYCLE
app_1  | npm ERR! syscall spawn
app_1  | npm ERR! file sh
app_1  | npm ERR! errno ENOENT
app_1  | npm ERR! BookAPI@0.0.1 copy-resources: `ts-node scripts/copy-resources.ts`
app_1  | npm ERR! spawn ENOENT
app_1  | npm ERR!
app_1  | npm ERR! Failed at the BookAPI@0.0.1 copy-resources script.
app_1  | npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
app_1  | npm WARN Local package.json exists, but node_modules missing, did you mean to install?
app_1  |
app_1  | npm ERR! A complete log of this run can be found in:
app_1  | npm ERR!     /root/.npm/_logs/2020-02-27T20_07_39_822Z-debug.log
app_1  | npm ERR! code ELIFECYCLE
app_1  | npm ERR! errno 1
app_1  | npm ERR! BookAPI@0.0.1 start: `npm run copy-resources && nodemon --watch src -e ts,tsx --exec ts-node src/main.ts`
app_1  | npm ERR! Exit status 1
app_1  | npm ERR!
app_1  | npm ERR! Failed at the BookAPI@0.0.1 start script.
app_1  | npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
app_1  | npm WARN Local package.json exists, but node_modules missing, did you mean to install?
app_1  |
app_1  | npm ERR! A complete log of this run can be found in:
app_1  | npm ERR!     /root/.npm/_logs/2020-02-27T20_07_39_847Z-debug.log
nestjs-api-server_app_1 exited with code 1


嘿,我尝试了这个解决方案,它的措辞与我,我希望它与你的工作以及

基本思想是,我们将从node_modules文件夹调用ts节点,而不是从local/bin文件夹(全局命令文件夹)调用ts节点

  • 安装ts节点和类型脚本 npm i ts节点类型脚本

  • package.json中的启动脚本 “开始”:“/node\u modules/.bin/ts node index.ts”

  • docker文件中的运行脚本 运行npm安装

    version: '3'
    services:
      app:
        build: .
        ports:
          - '8081:8081'
    
    version: '3'
    services:
      app:
        command: npm start
        volumes:
          - .:/usr/src/app
        environment:
          - NODE_ENV=development
    
    

  • 嘿,我尝试了这个解决方案,它的措辞与我,我希望它与你的工作以及

    基本思想是,我们将从node_modules文件夹调用ts节点,而不是从local/bin文件夹(全局命令文件夹)调用ts节点

  • 安装ts节点和类型脚本 npm i ts节点类型脚本

  • package.json中的启动脚本 “开始”:“/node\u modules/.bin/ts node index.ts”

  • docker文件中的运行脚本 运行npm安装

    version: '3'
    services:
      app:
        build: .
        ports:
          - '8081:8081'
    
    version: '3'
    services:
      app:
        command: npm start
        volumes:
          - .:/usr/src/app
        environment:
          - NODE_ENV=development
    
    

  • 所以我们知道节点_模块丢失了。。。可能是您在构建时运行了
    npm install
    ,然后将本地目录装载到同一路径—实际上覆盖了整个目录(并删除了您的node\u modules dir)?尝试从docker-compose.dev.yml中删除卷装载(第5行和第6行),然后
    docker-compose-up--build
    是的,这似乎就是问题所在。接得好。谢谢你,安迪。所以我们知道节点_模块丢失了。。。可能是您在构建时运行了
    npm install
    ,然后将本地目录装载到同一路径—实际上覆盖了整个目录(并删除了您的node\u modules dir)?尝试从docker-compose.dev.yml中删除卷装载(第5行和第6行),然后
    docker-compose-up--build
    是的,这似乎就是问题所在。接得好。谢谢你,安迪。