43 lines
1.1 KiB
Docker
43 lines
1.1 KiB
Docker
##
|
|
## AfterWork Server - Development Dockerfile
|
|
## Image légère avec JRE Alpine (JAR pré-buildé requis)
|
|
##
|
|
|
|
FROM eclipse-temurin:17-jre-alpine
|
|
|
|
# Variables d'environnement
|
|
ENV LANG='en_US.UTF-8' \
|
|
QUARKUS_PROFILE=dev \
|
|
JAVA_OPTS="-Xmx512m -Xms256m -XX:+UseG1GC"
|
|
|
|
# Installation des dépendances système
|
|
RUN apk add --no-cache curl tzdata && \
|
|
cp /usr/share/zoneinfo/Africa/Douala /etc/localtime && \
|
|
echo "Africa/Douala" > /etc/timezone
|
|
|
|
# Création du user non-root
|
|
RUN addgroup -g 185 -S appuser && \
|
|
adduser -u 185 -S appuser -G appuser
|
|
|
|
# Création des répertoires
|
|
RUN mkdir -p /app /tmp/uploads && \
|
|
chown -R appuser:appuser /app /tmp/uploads
|
|
|
|
WORKDIR /app
|
|
|
|
# Copie du JAR (context = racine du projet, build après mvn package)
|
|
COPY --chown=appuser:appuser target/*-runner.jar /app/app.jar
|
|
|
|
# Exposition du port
|
|
EXPOSE 8080
|
|
|
|
# Healthcheck
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=30s --retries=3 \
|
|
CMD curl -f http://localhost:8080/q/health/ready || exit 1
|
|
|
|
# User non-root
|
|
USER appuser
|
|
|
|
# Lancement
|
|
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
|