ARG VERSION=dev

FROM node:18 AS builder

ARG VERSION

WORKDIR /build
COPY ./web/package*.json ./
RUN npm install
COPY ./web ./
RUN REACT_APP_VERSION="$VERSION" npm run build

FROM golang:1.22 AS builder2

ARG VERSION

ENV GO111MODULE=on \
    CGO_ENABLED=0 \
    GOOS=linux

WORKDIR /build
COPY . .
COPY --from=builder /build/build ./web/build
RUN go mod download
RUN go build -trimpath -ldflags "-s -w -X 'atsflare/common.Version=$VERSION'" -o atsflare

FROM alpine

RUN apk update \
    && apk upgrade \
    && apk add --no-cache ca-certificates tzdata \
    && update-ca-certificates 2>/dev/null || true
ENV PORT=3000
COPY --from=builder2 /build/atsflare /
EXPOSE 3000
WORKDIR /data
ENTRYPOINT ["/atsflare"]
