Implémentation complète de toutes les fonctionnalités backend : ## Nouvelles Fonctionnalités ### Chat (Messagerie Instantanée) - Entities : Conversation, Message - DTOs : ConversationResponseDTO, MessageResponseDTO, SendMessageRequestDTO - Resources : MessageResource (endpoints REST) - Services : MessageService (logique métier) - Repositories : ConversationRepository, MessageRepository - WebSocket : ChatWebSocket (temps réel) ### Social (Publications Sociales) - Entities : SocialPost, SocialComment, SocialLike - DTOs : SocialPostResponseDTO, CreateSocialPostRequestDTO - Resources : SocialPostResource - Services : SocialPostService - Repositories : SocialPostRepository ### Story (Stories temporaires) - Entities : Story, StoryView - DTOs : StoryResponseDTO, CreateStoryRequestDTO - Resources : StoryResource - Services : StoryService - Repositories : StoryRepository ### Notifications (Temps Réel) - Entities : Notification - DTOs : NotificationResponseDTO - Resources : NotificationResource - Services : NotificationService, PresenceService - Repositories : NotificationRepository - WebSocket : NotificationWebSocket (temps réel) ## Améliorations ### Users & Friendship - Mise à jour UserResponseDTO avec nouveaux champs - Amélioration FriendshipResource avec séparation demandes envoyées/reçues - FriendSuggestionResponseDTO pour suggestions d'amis - Optimisations dans UsersService et FriendshipService ### Events - Améliorations EventsResource et EventService - Optimisations EventsRepository ### Configuration - Mise à jour application.properties - Configuration docker-compose.yml - Dockerfile pour développement ## Fichiers Modifiés - .dockerignore, .gitignore - README.md - docker-compose.yml - Configuration Maven wrapper
43 lines
1016 B
Docker
43 lines
1016 B
Docker
##
|
|
## AfterWork Server - Development Dockerfile
|
|
## Image légère avec JRE Alpine
|
|
##
|
|
|
|
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
|
|
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"]
|