ancerlop commited on
Commit
1abd012
verified
1 Parent(s): 6874c45

Fix Error Time Out

Browse files
Files changed (4) hide show
  1. Dockerfile +2 -2
  2. app.py +18 -1
  3. gunicorn_config.py +29 -0
  4. huggingface.yml +7 -0
Dockerfile CHANGED
@@ -23,5 +23,5 @@ RUN mkdir -p /tmp/42coderunner
23
  # Exponer el puerto
24
  EXPOSE 5000
25
 
26
- # Comando para ejecutar la aplicaci贸n
27
- CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]
 
23
  # Exponer el puerto
24
  EXPOSE 5000
25
 
26
+ # Comando para ejecutar la aplicaci贸n con archivo de configuraci贸n
27
+ CMD ["gunicorn", "--config", "gunicorn_config.py", "app:app"]
app.py CHANGED
@@ -99,7 +99,24 @@ def execute_code():
99
 
100
  @app.route('/api/health', methods=['GET'])
101
  def health_check():
102
- return jsonify({'status': 'ok'})
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
 
104
  if __name__ == '__main__':
105
  port = int(os.environ.get('PORT', 5000))
 
99
 
100
  @app.route('/api/health', methods=['GET'])
101
  def health_check():
102
+ # Verificar que el directorio temporal existe
103
+ temp_dir_exists = os.path.exists(TEMP_DIR)
104
+
105
+ # Verificar que podemos compilar c贸digo C
106
+ compiler_available = True
107
+ try:
108
+ subprocess.run(['gcc', '--version'], capture_output=True, check=True)
109
+ except (subprocess.SubprocessError, FileNotFoundError):
110
+ compiler_available = False
111
+
112
+ return jsonify({
113
+ 'status': 'ok',
114
+ 'timestamp': time.time(),
115
+ 'environment': {
116
+ 'temp_dir': temp_dir_exists,
117
+ 'compiler': compiler_available
118
+ }
119
+ })
120
 
121
  if __name__ == '__main__':
122
  port = int(os.environ.get('PORT', 5000))
gunicorn_config.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Gunicorn configuration file
2
+ import multiprocessing
3
+
4
+ # Server socket
5
+ bind = "0.0.0.0:5000"
6
+
7
+ # Worker processes
8
+ workers = 2
9
+ worker_class = "sync"
10
+ threads = 2
11
+
12
+ # Timeout settings
13
+ timeout = 120
14
+ keepalive = 2
15
+
16
+ # Server mechanics
17
+ preload_app = True
18
+
19
+ # Logging
20
+ accesslog = "-"
21
+ errorlog = "-"
22
+ loglevel = "info"
23
+
24
+ # Health check settings
25
+ def on_starting(server):
26
+ print("Gunicorn server is starting up...")
27
+
28
+ def when_ready(server):
29
+ print("Gunicorn server is ready. Health check should now respond.")
huggingface.yml ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ build_dir: .
2
+ health_check:
3
+ type: http
4
+ url: /api/health
5
+ interval: 10
6
+ timeout: 5
7
+ retries: 3