# syntax=docker/dockerfile:1
# Stage 1 — build
FROM golang:1.25-alpine AS builder
WORKDIR /src
ARG HTTP_PROXY
ARG HTTPS_PROXY
ARG NO_PROXY
ARG GOPROXY
ENV HTTP_PROXY=$HTTP_PROXY \
    HTTPS_PROXY=$HTTPS_PROXY \
    NO_PROXY=$NO_PROXY \
    GOPROXY=${GOPROXY:-https://proxy.golang.org,direct}
RUN apk add --no-cache git
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o /out/dev-server ./dev-server/

# Stage 2 — runtime
FROM alpine:3.20
RUN apk add --no-cache ca-certificates tzdata
WORKDIR /app
COPY --from=builder /out/dev-server /usr/local/bin/dev-server
# Volume untuk session MTProto biar gak ke-reset tiap container restart
VOLUME /app/session
EXPOSE 8080
ENV DRIVEGRAM_SESSION_FILE=/app/session/session.json
CMD ["dev-server"]
