docker-compose build命令及参数
文章目录
- **基本用法**
- **常用参数**
- 1. **`--no-cache`**
- 2. **`--pull`**
- 3. **`--build-arg <KEY=VALUE>`**
- 4. **`--progress <STYLE>`**
- 5. **`--parallel`**
- 6. **`--no-rm`**
- **示例**
- 1. **构建所有服务**
- 2. **构建特定服务**
- 3. **强制从头构建(不使用缓存)**
- 4. **拉取最新基础镜像并构建**
- 5. **传递构建参数**
- 6. **并行构建多个服务**
- **`docker-compose.yml` 中的 `build` 配置**
- **注意事项**
- 1. **构建上下文(`context`)**
- 2. **构建参数(`args`)**
- 3. **缓存机制**
- 4. **并行构建**
- **总结**
docker-compose build
是 Docker Compose 中用于根据
docker-compose.yml
文件中的配置构建服务镜像的命令。以下是该命令的详细说明及常用参数:
基本用法
docker compose build [OPTIONS] [SERVICE...]
SERVICE
(可选):指定要构建的服务名称。如果不指定,则为所有定义了build
配置的服务构建镜像。OPTIONS
:可选参数,用于控制构建行为。
常用参数
1. --no-cache
- 作用:不使用构建缓存,强制从头开始构建镜像。
- 示例:
docker compose build --no-cache
2. --pull
- 作用:始终尝试从镜像仓库拉取最新的基础镜像(即忽略本地已有的基础镜像)。
- 示例:
docker compose build --pull
3. --build-arg <KEY=VALUE>
- 作用:传递构建时的变量(类似于
docker build
的--build-arg
选项)。 - 示例:
docker compose build --build-arg NODE_ENV=production
4. --progress <STYLE>
- 作用:指定构建进度的输出样式(支持
auto
、plain
、tty
)。 - 示例:
docker compose build --progress plain
5. --parallel
- 作用:并行构建多个服务镜像(需 Docker Compose 版本 3.4+ 支持)。
- 示例:
docker compose build --parallel
6. --no-rm
- 作用:构建失败时保留中间容器(默认情况下,中间容器会在构建完成后删除)。
- 示例:
docker compose build --no-rm
示例
1. 构建所有服务
根据 docker-compose.yml
中的 build
配置,为所有服务构建镜像:
docker compose build
2. 构建特定服务
仅为 web
服务构建镜像:
docker compose build web
3. 强制从头构建(不使用缓存)
docker compose build --no-cache
4. 拉取最新基础镜像并构建
docker compose build --pull
5. 传递构建参数
通过 --build-arg
传递 NODE_ENV=production
变量:
docker compose build --build-arg NODE_ENV=production
6. 并行构建多个服务
docker compose build --parallel
docker-compose.yml
中的 build
配置
在 docker-compose.yml
文件中,build
配置项用于定义镜像的构建方式。例如:
version: '3.8'
services:web:build:context: ./app # 构建上下文路径dockerfile: Dockerfile # Dockerfile 文件路径(可选,默认为 Dockerfile)args:- APP_ENV=production # 构建参数ports:- "8080:80"
注意事项
1. 构建上下文(context
)
context
指定了 Dockerfile 所在的目录路径。构建时,Docker 会将该目录下的所有内容作为构建上下文上传到 Docker 守护进程。- 如果
context
路径包含大量文件,可能会导致构建变慢。建议通过.dockerignore
文件排除无关文件。
2. 构建参数(args
)
- 在
docker-compose.yml
中定义的args
会通过--build-arg
传递给docker build
。
3. 缓存机制
- 默认情况下,Docker 会使用缓存来加速构建。如果需要强制重新构建,使用
--no-cache
。
4. 并行构建
- 使用
--parallel
可以显著加快多服务项目的构建速度,但需要确保服务之间没有依赖关系冲突。
总结
docker compose build
是管理多服务镜像构建的核心工具。- 通过合理使用参数(如
--no-cache
、--pull
、--build-arg
),可以灵活控制构建过程。 - 结合
docker-compose.yml
中的build
配置,可以实现高效的镜像定制与部署。