FROM golang:1.23-alpine AS builder

RUN apk add --no-cache gcc musl-dev

WORKDIR /app
COPY go.mod ./
COPY src/ ./src/
RUN go mod tidy
RUN CGO_ENABLED=1 GOOS=linux go build -o /chat-server ./src/main.go

FROM alpine:3.20
RUN apk --no-cache add ca-certificates curl ffmpeg
WORKDIR /app
COPY --from=builder /chat-server /usr/local/bin/chat-server

EXPOSE 3000
CMD ["/usr/local/bin/chat-server"]