Files
WeatherTool/deploy/vps/Dockerfile
T

33 lines
932 B
Docker
Raw Normal View History

2026-08-20 19:22:03 +03:00
FROM node:22.14.0-alpine AS web-build
WORKDIR /build/web
COPY web/package.json web/package-lock.json ./
RUN npm ci
COPY web/ ./
RUN npm run build -- --mode production
2026-08-20 19:26:44 +03:00
FROM hseeberger/scala-sbt:17.0.2_1.6.2_2.13.8 AS scala-build
2026-08-20 19:22:03 +03:00
WORKDIR /build
COPY build.sbt ./
COPY project/ ./project/
COPY src/ ./src/
RUN sbt clean assembly
FROM amazoncorretto:17-alpine
RUN addgroup -S weather && adduser -S -G weather weather
WORKDIR /app
RUN mkdir -p /app/data/tmp /app/data/grids /app/web/dist && chown -R weather:weather /app
COPY --from=scala-build --chown=weather:weather /build/target/scala-2.13/app.jar /app/app.jar
COPY --from=web-build --chown=weather:weather /build/web/dist/ /app/web/dist/
USER weather
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=5s --start-period=40s --retries=3 \
CMD wget -q -O /dev/null http://127.0.0.1:8080/ || exit 1
CMD ["java", "-Xms128m", "-Xmx512m", "-XX:+UseG1GC", "-jar", "/app/app.jar"]