Ответ
Основная команда для сборки — docker build. Вот типичные сценарии её использования:
- Базовая сборка:
docker build -t myapp:latest .— собирает образ изDockerfileв текущей директории и присваивает ему тег. - Указание контекста и Dockerfile:
docker build -f ./docker/prod.Dockerfile .— если Dockerfile имеет нестандартное имя или расположение.
Ключевые флаги для оптимизации и контроля:
--no-cache— принудительная сборка без использования кеша слоёв. Использую, когда нужно гарантировать свежесть всех зависимостей (например,apt-get update).--build-arg— передача переменных в процесс сборки. Полезно для условной логики или передачи секретов (с осторожностью).docker build --build-arg VERSION=1.2.0 -t myapp:$VERSION .-
--target— в многоэтапных сборках (multi-stage builds) позволяет остановиться на определённой стадии. Это отлично подходит для извлечения только артефактов сборки (бинарников) в финальный образ.# Dockerfile FROM golang:alpine AS builder WORKDIR /app COPY . . RUN go build -o myapp . FROM alpine:latest COPY --from=builder /app/myapp /usr/local/bin/ CMD ["myapp"]# Можно собрать только стадию builder для тестирования docker build --target builder -t myapp:builder .После сборки проверяю список образов командой
docker imagesи часто отправляю в registry:docker push myrepo/myapp:latest.