# Go Chat Bridge Dockerfile FROM golang:1.22-alpine AS builder WORKDIR /app # Сначала только зависимости — этот слой кэшируется, пока не меняются go.mod/go.sum COPY go.mod go.sum ./ RUN go mod download # Код копируем отдельно — любое изменение .go пересобирает бинарник # Версию можно задать: docker build --build-arg VERSION=1.0.0 ARG VERSION=dev COPY *.go ./ RUN BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ) && \ go build -ldflags "-X main.Version=${VERSION} -X main.BuildDate=$BUILD_DATE" -o chat-bridge . FROM alpine:latest WORKDIR /app COPY --from=builder /app/chat-bridge . # Переменные окружения (можно задать через docker run -e ...) ENV TELEGRAM_TOKEN="" ENV DISCORD_TOKEN="" ENV VK_TOKEN="" ENV TELEGRAM_CHAT_ID="" ENV DISCORD_CHANNEL_ID="" ENV VK_PEER_ID="" ENV VK_GROUP_ID="" ENV SITE_API_URL="" ENV SITE_API_TOKEN="" ENV WEBHOOK_API_KEY="" ENV PUBLIC_URL="" ENV MEDIA_PROXY_SECRET="" CMD ["./chat-bridge"]