首页 > 解决方案 > 使用 Dockerfile,为什么主机目录的内容没有覆盖容器工作目录?

问题描述

我的 Dockerfile 摘录如下:

# build environment
FROM node:16.3.0-alpine as builder
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json ./
COPY package-lock.json ./
RUN npm ci --silent
RUN npm install react-scripts -g --silent
COPY . ./
RUN npm run build

我在理解与COPYandRUN命令相关的一些关键部分时遇到了一些问题。

这似乎很简单,除非我只是误解了命令的工作原理。复制package.jsonpackage-lock.json到工作目录。然后进行全新安装。这将node_modules在容器的工作目录中生成目录。

COPY package.json ./
COPY package-lock.json ./
RUN npm ci --silent
RUN npm install react-scripts -g --silent

但是,下一次执行是COPY . ./. 这不会覆盖工作目录的新node_modules文件夹node_modules也存在于主机目录中吗?

标签: node.jsdockernpmdockerfilealpine

解决方案


推荐阅读