FROM golang:1.23-alpine AS build
WORKDIR /src
COPY go.mod ./
COPY cmd ./cmd
COPY internal ./internal
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/catalog-api ./cmd/catalog-api

FROM alpine:3.22
RUN addgroup -S labpanel && adduser -S -G labpanel labpanel
WORKDIR /app
COPY --from=build /out/catalog-api /usr/local/bin/catalog-api
COPY dist/catalog.json /app/dist/catalog.json
USER labpanel
EXPOSE 8080
ENTRYPOINT ["/usr/local/bin/catalog-api"]
