# === Этап 1: сборка === # Берём образ с компилятором Go, собираем бинарник. FROM golang:1.26-alpine AS build WORKDIR /src # Сначала зависимости (кэш Docker не пересобирает их без изменений go.mod) COPY go.mod go.sum ./ RUN go mod download # Потом код COPY . . # Статичный бинарник без CGO — удобно класть в маленький alpine RUN CGO_ENABLED=0 GOOS=linux go build -o /out/bot . # === Этап 2: запуск === # Лёгкий образ только с бинарником (без компилятора). FROM alpine:3.22 RUN apk add --no-cache ca-certificates tzdata WORKDIR /app COPY --from=build /out/bot /app/bot # Токен НЕ кладём в образ — Coolify передаст BOT_TOKEN как env ENV BOT_TOKEN= CMD ["/app/bot"]