首页 > 解决方案 > 为什么dockerfile中的RUN不处理npx,节点命令

问题描述

我注意到每当我构建它构建的 docker 映像时,都无法在 dockerfile 中为该映像运行 npx 和 node 命令。当图像的容器启动时,我根本看不到 generate-typings.js 文件。但是当我进入容器运行脚本时,它就可以工作了。

DockerFile

FROM node:14.17.6 as base

WORKDIR /usr/src/app

#copy package.json to docker container
COPY package.json ./

#For schema back end
COPY prisma/. /usr/src/app/prisma/.
COPY ts*.json ./
#For the database connection
COPY .env ./
#install package.json dependency
RUN npm i
#transfer code files
COPY ./src /usr/src/app/src/
#generate typings for graphql -- line not running in image
RUN npx - tsc --skipLibCheck /usr/src/app/src/gql/generate-typings.ts
#update the scheme 
RUN node /usr/src/app/src/gql/generate-typings.js

#include nestjscli globally
RUN npm install -g @nestjs/cli
#generate
RUN npx prisma generate

码头工人撰写文件

version: "3.9"

services: 
  api:
    container_name: back_end_api
    build: 
      context: .
      dockerfile: Dockerfile
      target: base
    tty: true
    expose:
      - '4000'
    ports: 
      - "4000:4000"
    volumes:
      - ./src:/usr/src/app/src  #persist src folder to host machine
    networks:
      - emNetwork
    command: npm run dev
networks:
  emNetwork:  

标签: node.jsdockerdocker-composedockerfile

解决方案


推荐阅读