# Frontend-only. Merged stack: docker compose → docker/Dockerfile
# See docker/README.md

ARG TOMCAT_IMAGE=9.0.118
ARG NODE_IMAGE=12-alpine

FROM node:${NODE_IMAGE} AS builder

WORKDIR /build
COPY package.json Gruntfile.js webpack.config.js ./
COPY src ./src
COPY util ./util
COPY .jshintrc .jshintignore ./

RUN npm install --ignore-scripts && npm run release

FROM tomcat:${TOMCAT_IMAGE}-jre8-temurin-noble

RUN apt-get update \
    && apt-get install -y --no-install-recommends curl \
    && rm -rf /var/lib/apt/lists/* \
    && groupadd -r tomcat --gid=999 \
    && useradd -r -g tomcat --uid=999 --home-dir="${CATALINA_HOME}" tomcat \
    && rm -rf "${CATALINA_HOME}/webapps/"* \
    && mkdir -p "${CATALINA_HOME}/webapps/ROOT" \
    && chown -R tomcat:tomcat "${CATALINA_HOME}"

COPY --from=builder --chown=tomcat:tomcat /build/deploy/ ${CATALINA_HOME}/webapps/ROOT/

USER tomcat

EXPOSE 8080

HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \
    CMD curl -f http://127.0.0.1:8080/ || exit 1

CMD ["catalina.sh", "run"]
