FROM golang:1.18.3-alpine3.16 AS base

ENV APP_ROOT /opt/sfu
ARG gid=1000
ARG uid=1000
RUN mkdir -p "$APP_ROOT" \
    && addgroup --system sfu -g $gid \
    && adduser -h "$APP_ROOT" --disabled-password --system -u $uid --ingroup sfu sfu \
    && apk add --no-cache curl~=7
WORKDIR "$APP_ROOT"
USER sfu:sfu

FROM base AS build
COPY go.mod .
COPY *.go ./
RUN go build \
    && rm -r go.mod *.go

FROM build AS run_prod
ENTRYPOINT [ "/bin/sh", "-c", "$APP_ROOT/main"]

FROM base AS run_dev
ENTRYPOINT [ "/usr/local/go/bin/go", "run", "." ]
