dockerisation

This commit is contained in:
alma 2026-01-18 21:39:37 +01:00
parent 9923f3454e
commit eccd254372
7 changed files with 36 additions and 16 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -77,7 +77,7 @@ docker-compose -f docker-compose.prod.yml --env-file .env.production up -d db re
sleep 10 sleep 10
# Appliquer les migrations Prisma # Appliquer les migrations Prisma
docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx prisma migrate deploy docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx --yes prisma@6.4.1 migrate deploy
# Démarrer l'application # Démarrer l'application
docker-compose -f docker-compose.prod.yml --env-file .env.production up -d app docker-compose -f docker-compose.prod.yml --env-file .env.production up -d app
@ -151,7 +151,7 @@ docker-compose -f docker-compose.prod.yml --env-file .env.production stop app
docker-compose -f docker-compose.prod.yml --env-file .env.production build app docker-compose -f docker-compose.prod.yml --env-file .env.production build app
# Appliquer les migrations si nécessaire # Appliquer les migrations si nécessaire
docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx prisma migrate deploy docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx --yes prisma@6.4.1 migrate deploy
# Redémarrer # Redémarrer
docker-compose -f docker-compose.prod.yml --env-file .env.production up -d app docker-compose -f docker-compose.prod.yml --env-file .env.production up -d app
@ -161,10 +161,10 @@ docker-compose -f docker-compose.prod.yml --env-file .env.production up -d app
```bash ```bash
# Vérifier le statut des migrations # Vérifier le statut des migrations
docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx prisma migrate status docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx --yes prisma@6.4.1 migrate status
# Appliquer les migrations # Appliquer les migrations
docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx prisma migrate deploy docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx --yes prisma@6.4.1 migrate deploy
``` ```
## 📊 Monitoring et Logs ## 📊 Monitoring et Logs

View File

@ -56,6 +56,9 @@ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
COPY --from=builder --chown=nextjs:nodejs /app/node_modules/.prisma ./node_modules/.prisma COPY --from=builder --chown=nextjs:nodejs /app/node_modules/.prisma ./node_modules/.prisma
COPY --from=builder --chown=nextjs:nodejs /app/node_modules/@prisma ./node_modules/@prisma COPY --from=builder --chown=nextjs:nodejs /app/node_modules/@prisma ./node_modules/@prisma
# Copier le CLI Prisma (nécessaire pour les migrations)
COPY --from=builder --chown=nextjs:nodejs /app/node_modules/prisma ./node_modules/prisma
# Copier le schéma Prisma (nécessaire pour certaines opérations) # Copier le schéma Prisma (nécessaire pour certaines opérations)
COPY --from=builder --chown=nextjs:nodejs /app/prisma ./prisma COPY --from=builder --chown=nextjs:nodejs /app/prisma ./prisma

View File

@ -27,7 +27,7 @@ nano .env.production
docker-compose -f docker-compose.prod.yml --env-file .env.production build docker-compose -f docker-compose.prod.yml --env-file .env.production build
docker-compose -f docker-compose.prod.yml --env-file .env.production up -d db redis docker-compose -f docker-compose.prod.yml --env-file .env.production up -d db redis
sleep 15 sleep 15
docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx prisma migrate deploy docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx --yes prisma@6.4.1 migrate deploy
docker-compose -f docker-compose.prod.yml --env-file .env.production up -d app docker-compose -f docker-compose.prod.yml --env-file .env.production up -d app
``` ```
@ -54,7 +54,7 @@ docker-compose -f docker-compose.prod.yml --env-file .env.production restart app
docker-compose -f docker-compose.prod.yml --env-file .env.production logs -f docker-compose -f docker-compose.prod.yml --env-file .env.production logs -f
# Appliquer les migrations # Appliquer les migrations
docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx prisma migrate deploy docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx --yes prisma@6.4.1 migrate deploy
# Accéder à la base de données # Accéder à la base de données
docker-compose -f docker-compose.prod.yml --env-file .env.production exec db psql -U neah_user -d calendar_db docker-compose -f docker-compose.prod.yml --env-file .env.production exec db psql -U neah_user -d calendar_db

View File

@ -11,8 +11,6 @@
# - Configurez les volumes pour la persistance des données # - Configurez les volumes pour la persistance des données
# - Ajustez les ports selon votre infrastructure réseau # - Ajustez les ports selon votre infrastructure réseau
version: '3.8'
services: services:
# ============================================ # ============================================
# PostgreSQL - Base de données principale # PostgreSQL - Base de données principale

View File

@ -29,11 +29,26 @@ export function getRedisClient(): Redis {
isConnecting = true; isConnecting = true;
connectionAttempts = 0; connectionAttempts = 0;
// Set Redis connection parameters from environment variables only // Set Redis connection parameters from environment variables
const redisOptions = { // Prefer REDIS_URL if available, otherwise use individual variables
host: process.env.REDIS_HOST, let redisOptions: any;
port: process.env.REDIS_PORT ? parseInt(process.env.REDIS_PORT) : undefined,
password: process.env.REDIS_PASSWORD, if (process.env.REDIS_URL) {
// Use REDIS_URL if provided (e.g., redis://:password@host:port)
console.log('Connecting to Redis using REDIS_URL');
redisOptions = process.env.REDIS_URL;
} else {
// Fallback to individual environment variables
console.log('Connecting to Redis using individual environment variables');
redisOptions = {
host: process.env.REDIS_HOST || 'localhost',
port: process.env.REDIS_PORT ? parseInt(process.env.REDIS_PORT) : 6379,
password: process.env.REDIS_PASSWORD,
};
}
// Add common options
const commonOptions = {
retryStrategy: (times: number) => { retryStrategy: (times: number) => {
connectionAttempts = times; connectionAttempts = times;
if (times > MAX_RECONNECT_ATTEMPTS) { if (times > MAX_RECONNECT_ATTEMPTS) {
@ -52,8 +67,12 @@ export function getRedisClient(): Redis {
keyPrefix: '' // No prefix to keep keys clean keyPrefix: '' // No prefix to keep keys clean
}; };
console.log('Connecting to Redis using environment variables'); // Merge options if using individual variables
redisClient = new Redis(redisOptions); if (typeof redisOptions === 'string') {
redisClient = new Redis(redisOptions, commonOptions);
} else {
redisClient = new Redis({ ...redisOptions, ...commonOptions });
}
redisClient.on('error', (err) => { redisClient.on('error', (err) => {
console.error('Redis connection error:', err); console.error('Redis connection error:', err);

View File

@ -55,7 +55,7 @@ fi
echo "✅ Redis est prêt" echo "✅ Redis est prêt"
echo "🗄️ Application des migrations Prisma..." echo "🗄️ Application des migrations Prisma..."
docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx prisma migrate deploy docker-compose -f docker-compose.prod.yml --env-file .env.production run --rm app npx --yes prisma@6.4.1 migrate deploy
echo "🚀 Démarrage de l'application..." echo "🚀 Démarrage de l'application..."
docker-compose -f docker-compose.prod.yml --env-file .env.production up -d app docker-compose -f docker-compose.prod.yml --env-file .env.production up -d app