Fix deployment issues
- Remove healthcheck from Dockerfile (Coolify handles this) - Make database connection non-blocking - Add Coolify-specific docker-compose file - Improve error handling for database connection
This commit is contained in:
@@ -22,8 +22,4 @@ USER nodejs
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
# Health check
|
||||
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
||||
CMD node -e "require('http').get('http://localhost:3000/', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"
|
||||
|
||||
CMD ["node", "server.js"]
|
||||
|
||||
8
cc/results.json
Normal file
8
cc/results.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"session_id": "0e856c02-31a4-4e41-927f-79c3d8e1e364",
|
||||
"transcript_path": "/home/milko/.claude/projects/-home-milko-projects-ryan-airecruit-site/0e856c02-31a4-4e41-927f-79c3d8e1e364.jsonl",
|
||||
"cwd": "/home/milko/projects/ryan/airecruit-site/ai-recruit-site-template",
|
||||
"permission_mode": "bypassPermissions",
|
||||
"hook_event_name": "UserPromptSubmit",
|
||||
"prompt": "you deploy, I should not do it"
|
||||
}
|
||||
39
docker-compose.coolify.yml
Normal file
39
docker-compose.coolify.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: recruitment
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD:-changeme123}
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
- ./migrations:/docker-entrypoint-initdb.d:ro
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
app:
|
||||
build: .
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
PORT: 3000
|
||||
DB_HOST: postgres
|
||||
DB_PORT: 5432
|
||||
DB_NAME: recruitment
|
||||
DB_USER: postgres
|
||||
DB_PASSWORD: ${DB_PASSWORD:-changeme123}
|
||||
SESSION_SECRET: ${SESSION_SECRET:-change-this-secret-in-production}
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
16
server.js
16
server.js
@@ -21,14 +21,16 @@ const pool = new Pool({
|
||||
connectionTimeoutMillis: 2000,
|
||||
});
|
||||
|
||||
// Test database connection
|
||||
pool.query('SELECT NOW()', (err, res) => {
|
||||
if (err) {
|
||||
console.error('Database connection error:', err);
|
||||
} else {
|
||||
// Test database connection (non-blocking)
|
||||
pool.query('SELECT NOW()')
|
||||
.then((res) => {
|
||||
console.log('Database connected successfully at:', res.rows[0].now);
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error('Database connection error:', err.message);
|
||||
console.error('Application will continue but database operations will fail');
|
||||
console.error('Please ensure PostgreSQL is running and accessible');
|
||||
});
|
||||
|
||||
// Middleware
|
||||
app.use(express.json({ limit: '10mb' }));
|
||||
|
||||
Reference in New Issue
Block a user