node.js - 为什么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:
解决方案
推荐阅读
- r - R中的分层循环
- openapi - 将项目作为项目中的模块移动后,打开 api swagger-ui 给出白标错误页面(404)
- python - Gekko 最优控制。如何创建多个终止目标/条件?
- javascript - 短路代替三元运算符
- haskell - 如何映射带有两个参数(而不是一个)的函数?
- nginx - Nginx 不使用返回指令请求身份验证子请求
- azure - REDIRECT_URI_MISMATCH 与 Azure AD B2C Web 应用程序(基于 Python/Flask)
- python - 我想将输出值放在数据框的列中
- visual-studio-code - Visual Studio Code 文本选择
- maven-surefire-plugin - Maven配置文件从包中排除junit不起作用