| 123456789101112131415161718192021222324252627282930313233343536 |
- # syntax=docker/dockerfile:1
- FROM node:20-bookworm-slim AS frontend-build
- WORKDIR /build/frontend
- COPY frontend/package.json frontend/package-lock.json ./
- RUN npm ci
- COPY frontend/ ./
- RUN npm run build
- FROM maven:3.9.9-eclipse-temurin-17 AS backend-build
- WORKDIR /build/backend
- COPY backend/pom.xml ./
- COPY backend/src ./src
- RUN rm -rf src/main/resources/static && mkdir -p src/main/resources/static
- COPY --from=frontend-build /build/frontend/dist ./src/main/resources/static
- RUN mvn -B clean package -DskipTests
- FROM eclipse-temurin:17-jre-jammy
- WORKDIR /app
- COPY docker/entrypoint.sh /app/entrypoint.sh
- COPY --from=backend-build /build/backend/target/okr-performance-1.0.0.jar /app/okr-performance.jar
- RUN chmod +x /app/entrypoint.sh
- ENV APP_DATA_DIR=/app/data \
- APP_BACKUP_DIR=/app/data/backups \
- SPRING_DATASOURCE_URL=jdbc:sqlite:/app/data/okr-performance.db
- EXPOSE 18080
- VOLUME ["/app/data"]
- HEALTHCHECK --interval=15s --timeout=5s --start-period=30s --retries=5 \
- CMD bash -c 'exec 3<>/dev/tcp/127.0.0.1/18080'
- ENTRYPOINT ["/app/entrypoint.sh"]
- CMD ["java", "-jar", "/app/okr-performance.jar"]
|