ARG BASE_IMAGE=golang:1.22
# Ubuntu Nobel Numbat
ARG BASE_RUNTIME_IMAGE=ubuntu:24.04 
ARG BASE_UID=1001
ARG BASE_GID=1001
FROM ${BASE_IMAGE} AS build-stage

WORKDIR /build

# Download Go modules
COPY go.mod ./
RUN go mod download

COPY *.go ./

RUN CGO_ENABLED=0 GOOS=linux go build -o fluxfeed

FROM ${BASE_RUNTIME_IMAGE} AS runtime-stage

ARG BASE_UID=1001
ARG BASE_GID=1001

ENV WORK_DIR=/app

RUN groupadd -g ${BASE_GID} flux
RUN useradd --create-home flux -u ${BASE_UID} -g ${BASE_GID}

WORKDIR ${WORK_DIR}

COPY --chown=app --from=build-stage /build/fluxfeed ${WORK_DIR}/ 

ARG REPO_NAME
ARG REPO_SHA

LABEL io.runcible.repo-name="${REPO_NAME}" \
      io.runcible.repo-sha="${REPO_SHA}"

EXPOSE 8080

USER flux

CMD ["./fluxfeed"]