Initial commit
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2025-06-23 08:16:29 +03:00
commit 15686b146a
5 changed files with 132 additions and 0 deletions

40
Dockerfile Normal file
View File

@@ -0,0 +1,40 @@
# ---- Builder Stage ----
# На этом этапе мы собираем приложение
FROM golang:1.24-alpine AS builder
# Устанавливаем рабочую директорию
WORKDIR /app
# Копируем файлы зависимостей и загружаем их
# Это позволяет кэшировать слой с зависимостями, если они не менялись
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=0 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"]