FROM golang:1.23-alpine AS builder

WORKDIR /src

COPY go.mod go.sum ./
COPY api/go.mod api/go.sum ./api/
RUN GOWORK=off go mod download

COPY . .

RUN GOWORK=off CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /out/server ./services/gateway-service/cmd/server

FROM alpine:3.20

WORKDIR /app

RUN apk add --no-cache ca-certificates && adduser -D -g '' appuser

COPY --from=builder /out/server /app/server
COPY services/gateway-service/configs/config.docker.yaml /app/config.yaml

USER appuser

EXPOSE 13000

ENTRYPOINT ["/app/server"]
CMD ["-config", "/app/config.yaml"]
