Implement a dedicated Docker container (backup-cron) for automated daily backups and maintenance tasks, eliminating the need for host cron configuration. New features: - backup-cron service: Alpine-based container with Docker CLI and cron - Automated daily backup at 5:00 AM (Europe/Paris timezone) - Automated health check at 6:00 AM (after backup) - Weekly log cleanup on Sundays at 3:00 AM (removes logs >30 days) Files added: - cron/Dockerfile: Alpine Linux with docker-cli, bash, and tzdata - cron/entrypoint.sh: Starts crond and displays configuration - cron/crontab: Scheduled tasks configuration - cron/README.md: Complete documentation for automated backups - scripts/clean-old-logs.sh: Automated log cleanup script Makefile enhancements: - make cron-status: Display backup automation status and schedule - make cron-logs: View logs from automated tasks Configuration improvements: - Auto-detect COMPOSE_PROJECT_NAME from directory name (portable) - Fix df command to use POSIX format (-P flag) for consistent output - Updated .env.example with COMPOSE_PROJECT_NAME documentation Benefits: - No host cron configuration required - Portable across different environments - Automatic timezone handling - Integrated with existing backup/health check scripts - Logs all automated tasks for monitoring 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
25 lines
524 B
Docker
25 lines
524 B
Docker
FROM alpine:latest
|
|
|
|
# Installer les dépendances nécessaires
|
|
RUN apk add --no-cache \
|
|
docker-cli \
|
|
docker-cli-compose \
|
|
bash \
|
|
tzdata
|
|
|
|
# Configurer le fuseau horaire
|
|
ENV TZ=Europe/Paris
|
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
|
|
|
# Copier le fichier crontab
|
|
COPY crontab /etc/crontabs/root
|
|
|
|
# Copier le script d'entrée
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
# Créer le répertoire pour les logs
|
|
RUN mkdir -p /logs
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|