Files
yamusic-bot/Dockerfile
Vladimir Zagainov a4a778619c
All checks were successful
continuous-integration/drone/push Build is passing
2nd change Dockerfile
2025-06-24 06:44:30 +03:00

41 lines
1.8 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ---- Builder Stage ----
# На этом этапе мы собираем приложение
FROM golang:1.24-alpine AS builder
# Устанавливаем рабочую директорию
WORKDIR /app
RUN apk add --no-cache build-base
# Копируем файлы зависимостей и загружаем их
# Это позволяет кэшировать слой с зависимостями, если они не менялись
COPY go.mod go.sum ./
RUN go mod download
# Копируем исходный код
COPY . .
# Собираем статически слинкованный бинарник.
# -w -s флаги убирают отладочную информацию и символы, уменьшая размер.
# CGO_ENABLED=0 необходимо для статической линковки и использования from scratch.
# TARGETARCH будет автоматически подставлен Docker Buildx (amd64 или arm64).
ARG TARGETARCH
RUN CGO_ENABLED=1 GOOS=linux GOARCH=${TARGETARCH} go build -ldflags="-w -s" -o /app/bot ./cmd/bot
# ---- Final Stage ----
# На этом этапе мы создаем финальный образ
FROM scratch
# Устанавливаем рабочую директорию
WORKDIR /app
# Копируем только скомпилированный бинарник из builder'а
COPY --from=builder /app/bot /app/bot
# Создаем том для хранения данных, например, файла базы данных SQLite
VOLUME /data
# Указываем, что контейнер будет слушать на этом порту (если потребуется)
# EXPOSE 8080
# Команда для запуска приложения
ENTRYPOINT ["/app/bot"]