docker - Docker 运行和体积说明
问题描述
下面是我的 dockerfile,我在 copy 命令中复制 js 文件,然后设置工作目录,然后是卷和运行命令。下面是我的 dockerfile 1)我了解 node_modules(由于运行 npm install 而创建)正在由于在同一位置创建卷而首次初始化容器时擦除我的问题为什么我在步骤 3 中复制的 app.js 没有被擦除,因为它也与卷在同一路径上?
FROM node:latest
ENV NODE_ENV=production
ENV PORT=3000
COPY . /app
WORKDIR /app
VOLUME ["/app"]
RUN npm install
EXPOSE $PORT
ENTRYPOINT ["node","app.js"]
解决方案
问:为什么我的 app.js(我在步骤 3 中复制的)没有被擦除,而node_modules
is。
答:正如 docker 文档中卷部分的解释。
引用:
从 Dockerfile 中更改卷:
如果任何构建步骤 在声明后更改了卷内的数据,则这些 更改将被丢弃。
参考: https ://docs.docker.com/engine/reference/builder/#notes-about-specifying-volumes
推荐阅读
- php - 如何将全局命名空间中的函数重构为 PhpStorm 中定义的命名空间中的函数?
- javascript - 请问如何更新嵌套的 mongodb 嵌入式文档,我有这样的文档结构
- r - 有没有办法在字符向量中分离特定字符串并将它们放入另一个向量中
- kubernetes - Kubernetes 持久卷覆盖 pod/容器中的现有数据
- java - Javalin IO (Java):值为 'list' 的路径参数 'id' 不是有效的 Long
- excel - Excel:如何查询单元格中的日期是否为当前年份和月份?
- c# - 如何在 .NET Core 中使用 Microsoft Graph mgt-people-picker 组件
- discord - discord js如何在执行另一个命令后删除上一条消息
- mysql - #1050 - 表 'wp_actionscheduler_actions' 已经存在
- javascript - 单击成绩按钮时,如果 avg > 30 显示“恭喜!通过”,如果 avg < 30 显示“祝你好运”