现在把 Dockerfile 变成镜像。
docker build -t myapp:1.0.0 .含义:
docker build
├── -t myapp:1.0.0 给镜像打名字和标签
└── . 构建上下文是当前目录#1. 什么叫“构建上下文”
构建上下文就是:
你允许 Docker 在构建时看到的那批文件。
通常是当前目录:
docker build .所以 Dockerfile 里的:
COPY . .其实是“把构建上下文里的文件拷到镜像里”。
#2. .dockerignore 为什么重要
如果你不写 .dockerignore,构建上下文里很多不该进去的东西也会被送给 Docker:
node_modules.git- 本地日志
- 临时文件
- 构建产物
一个典型例子:
node_modules
dist
.git
.env
coverage这能减少:
- 构建体积
- 无意义缓存失效
- 敏感文件误入镜像
#3. 现代构建默认思路:BuildKit
Docker 官方现在整套构建文档都围绕现代构建体系展开,BuildKit 已经不是可有可无的“高级功能”,而是现代 Docker 构建心智的一部分。
你会在现代 Dockerfile 里经常看到:
它的意义是:
- 使用现代 Dockerfile 语法
- 让构建能力跟上当前稳定语义
- 更好支持缓存、检查和高级构建特性