Dockerfile.frontend
Home
/
docker /
Dockerfile.frontend
# WebVOWL frontend only (no OWL2VOWL /convert). Build context: WebVOWL repo root.
ARG TOMCAT_IMAGE=9.0.118
ARG WEBVOWL_VERSION=1.1.7
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
ARG WEBVOWL_VERSION=1.1.7
LABEL org.opencontainers.image.title="WebVOWL (frontend only)" \
org.opencontainers.image.version="${WEBVOWL_VERSION}"
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"]