FROM node:22-alpine AS fetch

ARG NPM_REGISTRY="https://git.derfenix.pro/api/packages/trading/npm/"
ARG PACKAGE_NAME="tradebot-ng-ui"
ARG PACKAGE_VERSION="0.1.0"
ARG NPM_TOKEN=""

WORKDIR /app

RUN npm init -y

RUN REGISTRY_HOST="${NPM_REGISTRY#https://}" \
    && REGISTRY_HOST="${REGISTRY_HOST#http://}" \
    && REGISTRY_HOST="${REGISTRY_HOST%/}" \
    && printf "registry=%s\n" "${NPM_REGISTRY}" > .npmrc \
    && if [ -n "${NPM_TOKEN}" ]; then printf "//%s/:_authToken=%s\nalways-auth=true\n" "${REGISTRY_HOST}" "${NPM_TOKEN}" >> .npmrc; fi

RUN npm install "${PACKAGE_NAME}@${PACKAGE_VERSION}" --no-audit --no-fund

RUN test -d "node_modules/${PACKAGE_NAME}/dist"

FROM nginx:1.29-alpine AS runtime

COPY deploy/prod/nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=fetch /app/node_modules/tradebot-ng-ui/dist /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
