dockerisation
This commit is contained in:
parent
9923f3454e
commit
eccd254372
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
33
lib/redis.ts
33
lib/redis.ts
@ -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);
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user