Severian commited on
Commit
60377a9
·
verified ·
1 Parent(s): fec05dd

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +28 -5
Dockerfile CHANGED
@@ -33,6 +33,7 @@ RUN apt-get update && apt-get install -y \
33
  locales \
34
  nginx \
35
  netcat-openbsd \
 
36
  && rm -rf /var/lib/apt/lists/* \
37
  && pip install --no-cache-dir "poetry==${POETRY_VERSION}" \
38
  && sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen \
@@ -169,7 +170,18 @@ wait_for_port() {
169
  echo "Waiting for $service (attempt $i/$max_attempts)..."
170
  sleep $wait_time
171
  done
172
- echo "$service failed to bind to port $port"
 
 
 
 
 
 
 
 
 
 
 
173
  return 1
174
  }
175
 
@@ -242,13 +254,21 @@ cd /app/api && poetry run python -m gunicorn app:app \
242
  echo "Waiting for API server to be ready..."
243
  wait_for_port 5001 "API" 30 2
244
 
245
- # Start frontend server
246
  echo "Starting frontend server..."
247
- cd /app/web && PORT=3000 node server.js &
 
 
 
 
248
 
249
- # Wait for frontend to be ready
250
  echo "Waiting for frontend server to be ready..."
251
- wait_for_port 3000 "Frontend" 30 2
 
 
 
 
252
 
253
  # Start nginx with debug logging
254
  echo "Starting nginx..."
@@ -263,14 +283,17 @@ echo "All services are running. Starting monitoring..."
263
  while true; do
264
  if ! pgrep -f "gunicorn" > /dev/null; then
265
  echo "API server died"
 
266
  exit 1
267
  fi
268
  if ! pgrep -f "node server.js" > /dev/null; then
269
  echo "Frontend server died"
 
270
  exit 1
271
  fi
272
  if ! pgrep -f "nginx" > /dev/null; then
273
  echo "Nginx died"
 
274
  exit 1
275
  fi
276
  sleep 30
 
33
  locales \
34
  nginx \
35
  netcat-openbsd \
36
+ net-tools \
37
  && rm -rf /var/lib/apt/lists/* \
38
  && pip install --no-cache-dir "poetry==${POETRY_VERSION}" \
39
  && sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen \
 
170
  echo "Waiting for $service (attempt $i/$max_attempts)..."
171
  sleep $wait_time
172
  done
173
+
174
+ # If we get here, the service failed to start
175
+ echo "=== $service Startup Failure ==="
176
+ echo "Service failed to bind to port $port after $max_attempts attempts"
177
+ echo "Checking process status:"
178
+ ps aux | grep -i "$service" || true
179
+ echo "Checking port status:"
180
+ netstat -tulpn | grep ":$port" || true
181
+ echo "Checking logs:"
182
+ if [ "$service" = "Frontend" ]; then
183
+ tail -n 50 /app/web/output.log || true
184
+ fi
185
  return 1
186
  }
187
 
 
254
  echo "Waiting for API server to be ready..."
255
  wait_for_port 5001 "API" 30 2
256
 
257
+ # Start frontend server with logging
258
  echo "Starting frontend server..."
259
+ cd /app/web
260
+ # Ensure the output log directory exists
261
+ touch output.log
262
+ echo "Starting Next.js server at $(date)" > output.log
263
+ PORT=3000 node server.js >> output.log 2>&1 &
264
 
265
+ # Wait for frontend to be ready with increased timeout
266
  echo "Waiting for frontend server to be ready..."
267
+ if ! wait_for_port 3000 "Frontend" 60 5; then
268
+ echo "Frontend server failed to start. Last 50 lines of frontend logs:"
269
+ tail -n 50 /app/web/output.log
270
+ exit 1
271
+ fi
272
 
273
  # Start nginx with debug logging
274
  echo "Starting nginx..."
 
283
  while true; do
284
  if ! pgrep -f "gunicorn" > /dev/null; then
285
  echo "API server died"
286
+ tail -n 100 /app/api/gunicorn.error.log || true
287
  exit 1
288
  fi
289
  if ! pgrep -f "node server.js" > /dev/null; then
290
  echo "Frontend server died"
291
+ tail -n 100 /app/web/output.log || true
292
  exit 1
293
  fi
294
  if ! pgrep -f "nginx" > /dev/null; then
295
  echo "Nginx died"
296
+ tail -n 100 /var/log/nginx/error.log || true
297
  exit 1
298
  fi
299
  sleep 30