# 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 RUN apk add --no-cache ca-certificates ffmpeg python3 py3-pip \ && pip3 install --break-system-packages --no-cache-dir yt-dlp \ && yt-dlp --version 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 MAX_TOKEN="" ENV MAX_CHAT_ID="" ENV MAX_USE_WEBHOOK="" ENV MAX_WEBHOOK_SECRET="" ENV SITE_API_URL="" ENV SITE_API_TOKEN="" ENV WEBHOOK_API_KEY="" ENV PUBLIC_URL="" ENV MEDIA_PROXY_SECRET="" CMD ["./chat-bridge"]