FROM golang:1.23-alpine AS builder

WORKDIR /app

RUN echo "https://mirror.arvancloud.ir/alpine/v3.20/main" > /etc/apk/repositories && \
    echo "https://mirror.arvancloud.ir/alpine/v3.20/community" >> /etc/apk/repositories

ENV GOPROXY=https://mirror.abrha.net/repository/go/,direct
ENV GOSUMDB=off

COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o websocket-server ./cmd/server

FROM alpine:latest

RUN echo "https://mirror.arvancloud.ir/alpine/v3.20/main" > /etc/apk/repositories && \
    echo "https://mirror.arvancloud.ir/alpine/v3.20/community" >> /etc/apk/repositories

RUN apk --no-cache add ca-certificates tzdata wget

WORKDIR /root/

COPY --from=builder /app/websocket-server .

EXPOSE 8080

CMD ["./websocket-server"]
