FROM golang:1.27-alpine AS builder

ARG VERSION=dev
ARG GIT_SHA=0

WORKDIR /build

COPY go.mod ./

COPY index.html.tmpl main.go ./

RUN CGO_ENABLED=0 GOOS=linux go build -ldflags "-X main.version=${VERSION}-${GIT_SHA}" -o beam .

FROM alpine:latest

ARG VERSION=dev
ARG GIT_SHA=dev

LABEL org.opencontainers.image.version="${VERSION}"
LABEL org.opencontainers.image.revision="${GIT_SHA}"

RUN apk add --no-cache mailcap \
    && adduser -D -u 1000 beam \
    && mkdir /uploads \
    && chown beam /uploads

USER beam
WORKDIR /app

COPY --from=builder /build/index.html.tmpl /build/beam .

EXPOSE 8080

CMD ["./beam"]
