node.js - 使用 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
我在理解与COPY
andRUN
命令相关的一些关键部分时遇到了一些问题。
这似乎很简单,除非我只是误解了命令的工作原理。复制package.json
并package-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
也存在于主机目录中吗?
解决方案
推荐阅读
- python - Python 命令行循环
- c# - 在不迁移用户的情况下使用 Azure Active Directory B2C
- python - 如何从python中的字典中检索特定数据
- web - 如何将网页作为网络视频墙镜像到另一个浏览器?
- python - 如何自动确定用户输入的类型?
- java - JavaFX WebView 过度绘制自身并拒绝监听任何 javascript 函数以使其自动滚动到底部
- runtime - 运行时分析大 O
- java - 在 Google Guice 中,多个提供商之间的优先级是如何发生的?
- c++ - C ++中列表和多集之间的区别
- php - 如何在 kernel.controller 上的 Symfony 中重定向