Files
htop-web/Dockerfile
T
Liosha84 eb73c55ac2
continuous-integration/drone/push Build is failing
fix(drone): use full commit SHA for Docker tag and fix non-interactive adduser
- Replace bash substring syntax ${DRONE_COMMIT_SHA:0:7} with
  ${DRONE_COMMIT_SHA} which is supported by Drone YAML variables
- Use 'adduser -D -g ""' in Dockerfile to skip interactive prompts
  for user information during Docker image build
2026-10-29 00:47:28 +01:00

34 lines
1.0 KiB
Docker

# Stage 1: Build frontend with Node.js
FROM node:22-alpine AS frontend
WORKDIR /frontend
COPY frontend/package.json frontend/package-lock.json ./
RUN npm ci
COPY frontend/ ./
RUN npm run build -- --configuration production
# Stage 2: Build backend with Gradle
FROM eclipse-temurin:21-jdk AS builder
WORKDIR /app
COPY backend/build.gradle backend/settings.gradle ./
COPY backend/gradlew ./
COPY backend/gradle/ gradle/
COPY backend/src/ src/
# Copy built frontend assets into Spring static resources
COPY --from=frontend /frontend/dist/frontend/browser src/main/resources/static/
RUN chmod +x gradlew && SKIP_FRONTEND=true ./gradlew bootJar --no-daemon
# Stage 3: Runtime image
FROM eclipse-temurin:21-jre
WORKDIR /app
COPY --from=builder /app/build/libs/backend-0.0.1-SNAPSHOT.jar app.jar
RUN adduser -D -g "" appuser && \
chown appuser:appuser /app
USER appuser
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD wget -q --spider http://localhost:8080/api/system/metrics || exit 1
ENTRYPOINT ["java", "-jar", "app.jar"]