FROM docker.io/golang:alpine as go
WORKDIR /build
# ADD rex_server/go.mod rex_server/go.sum ./ # WARNING: Include go.sum
ADD rex_server/go.mod ./

RUN go mod download

# Add the rest of the source
ADD . .

RUN go build -o ./rexserver ./rex_server/server.go

# Runner image, drop privileges
FROM docker.io/alpine:latest as runner
RUN adduser -D nonroot
RUN addgroup nonroot nonroot
WORKDIR /app
RUN chown nonroot:nonroot /app

COPY --from=go /build/rexserver rexserver
EXPOSE 8080
USER nonroot:nonroot
CMD ["./rexserver"]