# docker compose build

## 描述

* 构建 (或重新构建) Compose 项目中定义的服务对应的镜像。
* 服务构建完成后，会为镜像打标签 (tag)。默认标签是 `项目名_服务名` (例如 `myproject_web`)。
* 如果 Compose 文件里对服务定义了 `image:` 名称，那么构建出来的镜像会使用该名称进行标记，并替换其中任何变量 (如环境变量插值)。
* 当服务对应的 `Dockerfile` 或其构建上下文 (build context) 的内容有改动时，执行 `docker compose build` 可以重新构建新的镜像。

## 选项

| 选项                    | 描述                                                                         |
| --------------------- | -------------------------------------------------------------------------- |
| `--build-arg key=val` | 为构建过程传递构建参数 (build-arg)，这些参数会传到 Dockerfile 的 `ARG`。                        |
| `--builder`           | 指定要使用的构建器 (builder)。                                                       |
| `-m, --memory MEM`    | 为构建容器设置内存限制 (Memory 限额)。注意：某些构建器（如 BuildKit）可能不支持这个限制。                     |
| `--no-cache`          | 构建时不使用缓存 (cache)，强制每层都重新构建。                                                |
| `--pull`              | 总是尝试拉取 (pull) 对应基础镜像的最新版本，然后再构建。                                           |
| `--push`              | 构建完成后将镜像推送 (push) 到镜像仓库。                                                   |
| `--ssh`               | 在构建过程中使用 SSH 身份 (例如当 Dockerfile 里有 `RUN --mount=type=ssh` 需要访问私有 Git 仓库时)。 |
| `--with-dependencies` | 同时构建当前服务以及其所有依赖服务。                                                         |
| `-q, --quiet`         | 静默模式：构建时不输出详细日志 (标准输出不显示太多内容)。                                             |
