Ответ
Для сборки приложения в Docker нужно создать Dockerfile и выполнить команду docker build.
Пример для Go-приложения:
# Используем официальный образ Go
FROM golang:1.21 as builder
# Устанавливаем рабочую директорию
WORKDIR /app
# Копируем модули и зависимости
COPY go.mod go.sum ./
RUN go mod download
# Копируем исходный код и собираем приложение
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o /app/main .
# Используем минимальный образ для запуска
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/main .
CMD ["/app/main"]
Сборка и запуск:
docker build -t my-go-app .
docker run -p 8080:8080 my-go-app
Оптимизации:
- Многоэтапная сборка (
builder) уменьшает итоговый образ. - Отключение CGO (
CGO_ENABLED=0) делает бинарник статически линкованным. - Использование
alpineуменьшает размер образа.