logs
This commit is contained in:
parent
c51788dfae
commit
2f37c4cd52
2 changed files with 52 additions and 10 deletions
|
|
@ -22,4 +22,5 @@ ENV NODE_ENV=production
|
||||||
ENV NODE_NO_WARNINGS=1
|
ENV NODE_NO_WARNINGS=1
|
||||||
|
|
||||||
# Явно выводим логи в stdout/stderr без буферизации
|
# Явно выводим логи в stdout/stderr без буферизации
|
||||||
CMD sh -c "echo '========================================' && echo '=== STARTING BACKEND ===' && echo '========================================' && npx prisma migrate deploy && echo '=== MIGRATIONS COMPLETED ===' && exec node --no-warnings dist/main"
|
# Используем unbuffered mode для Python-style вывода (если доступно)
|
||||||
|
CMD sh -c "echo '========================================' 1>&2 && echo '=== DOCKER CMD STARTED ===' 1>&2 && echo '========================================' 1>&2 && echo 'Running migrations...' 1>&2 && npx prisma migrate deploy 2>&1 && echo '=== MIGRATIONS COMPLETED ===' 1>&2 && echo 'Starting Node.js application...' 1>&2 && exec node --no-warnings dist/main 2>&1"
|
||||||
|
|
|
||||||
|
|
@ -3,16 +3,54 @@ import { ValidationPipe } from '@nestjs/common';
|
||||||
import { ConfigService } from '@nestjs/config';
|
import { ConfigService } from '@nestjs/config';
|
||||||
import { AppModule } from './app.module';
|
import { AppModule } from './app.module';
|
||||||
|
|
||||||
async function bootstrap() {
|
// Логируем ДО инициализации NestJS, чтобы видеть, что процесс запустился
|
||||||
// Принудительно выводим в stdout и stderr для Docker/Coolify
|
console.log('========================================');
|
||||||
const log = (message: string) => {
|
console.log('=== BACKEND PROCESS STARTED ===');
|
||||||
console.log(message);
|
console.log('========================================');
|
||||||
console.error(`[LOG] ${message}`); // Дублируем в stderr для надежности
|
console.log(`Node version: ${process.version}`);
|
||||||
};
|
console.log(`Process PID: ${process.pid}`);
|
||||||
|
console.log(`Working directory: ${process.cwd()}`);
|
||||||
|
|
||||||
log('========================================');
|
// Принудительно выводим в stdout и stderr для Docker/Coolify
|
||||||
log('=== BACKEND STARTING ===');
|
const log = (message: string) => {
|
||||||
log('========================================');
|
const timestamp = new Date().toISOString();
|
||||||
|
const logMessage = `[${timestamp}] ${message}`;
|
||||||
|
console.log(logMessage);
|
||||||
|
console.error(logMessage); // Дублируем в stderr для надежности
|
||||||
|
// Также пишем напрямую в stderr
|
||||||
|
process.stderr.write(logMessage + '\n');
|
||||||
|
};
|
||||||
|
|
||||||
|
log('========================================');
|
||||||
|
log('=== BACKEND BOOTSTRAP STARTING ===');
|
||||||
|
log('========================================');
|
||||||
|
|
||||||
|
// Логируем переменные окружения ДО создания приложения
|
||||||
|
log('Environment variables check:');
|
||||||
|
log(` DATABASE_URL: ${process.env.DATABASE_URL ? 'SET (length: ' + process.env.DATABASE_URL.length + ')' : 'NOT SET'}`);
|
||||||
|
log(` JWT_SECRET: ${process.env.JWT_SECRET ? 'SET (length: ' + process.env.JWT_SECRET.length + ')' : 'NOT SET'}`);
|
||||||
|
log(` PORT: ${process.env.PORT || 'NOT SET (default: 3000)'}`);
|
||||||
|
log(` HOST: ${process.env.HOST || 'NOT SET (default: 0.0.0.0)'}`);
|
||||||
|
log(` CORS_ORIGIN: ${process.env.CORS_ORIGIN || 'NOT SET (default: http://localhost:5173)'}`);
|
||||||
|
|
||||||
|
// Проверяем и исправляем формат DATABASE_URL
|
||||||
|
if (process.env.DATABASE_URL) {
|
||||||
|
let dbUrl = process.env.DATABASE_URL;
|
||||||
|
if (dbUrl.startsWith('postgres://')) {
|
||||||
|
log('⚠️ WARNING: DATABASE_URL uses postgres:// instead of postgresql://');
|
||||||
|
log(' Converting to postgresql:// format for Prisma...');
|
||||||
|
// Заменяем postgres:// на postgresql://
|
||||||
|
dbUrl = dbUrl.replace('postgres://', 'postgresql://');
|
||||||
|
process.env.DATABASE_URL = dbUrl;
|
||||||
|
log('✓ DATABASE_URL converted to postgresql:// format');
|
||||||
|
} else if (dbUrl.startsWith('postgresql://')) {
|
||||||
|
log('✓ DATABASE_URL format is correct (postgresql://)');
|
||||||
|
} else {
|
||||||
|
log('⚠️ WARNING: DATABASE_URL format is unusual');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function bootstrap() {
|
||||||
|
|
||||||
const app = await NestFactory.create(AppModule);
|
const app = await NestFactory.create(AppModule);
|
||||||
const configService = app.get(ConfigService);
|
const configService = app.get(ConfigService);
|
||||||
|
|
@ -77,6 +115,9 @@ async function bootstrap() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
log(`Attempting to start server on ${host}:${port}...`);
|
log(`Attempting to start server on ${host}:${port}...`);
|
||||||
|
log('Creating NestJS application instance...');
|
||||||
|
|
||||||
|
log('Starting HTTP server...');
|
||||||
await app.listen(port, host);
|
await app.listen(port, host);
|
||||||
|
|
||||||
log('========================================');
|
log('========================================');
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue