docker-compose build命令及参数
·
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配置,可以实现高效的镜像定制与部署。
更多推荐


所有评论(0)