mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	* Use multi stage build to slim down ML image size * Use gunicorn as WSGI server in ML image * Configure gunicorn server for ML use case * Use requirements.txt file to install python dependencies in ML image * Make ML listen IP configurable * Revert "Use requirements.txt file to install python dependencies in ML image" This reverts commit 32e706c7f3db1d0aa1a66b3733ab9ec9dfb86534. * Separate out pip installs in ML builder image
		
			
				
	
	
		
			30 lines
		
	
	
		
			837 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			837 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
| Gunicorn configuration options.
 | |
| https://docs.gunicorn.org/en/stable/settings.html
 | |
| """
 | |
| import os
 | |
| 
 | |
| 
 | |
| # Set the bind address based on the env
 | |
| port = os.getenv("MACHINE_LEARNING_PORT") or "3003"
 | |
| listen_ip = os.getenv("MACHINE_LEARNING_IP") or "0.0.0.0"
 | |
| bind = [f"{listen_ip}:{port}"]
 | |
| 
 | |
| # Preload the Flask app / models etc. before starting the server
 | |
| preload_app = True
 | |
| 
 | |
| # Logging settings - log to stdout and set log level
 | |
| accesslog = "-"
 | |
| loglevel = os.getenv("MACHINE_LEARNING_LOG_LEVEL") or "info"
 | |
| 
 | |
| # Worker settings
 | |
| # ----------------------
 | |
| # It is important these are chosen carefully as per
 | |
| # https://pythonspeed.com/articles/gunicorn-in-docker/
 | |
| # Otherwise we get workers failing to respond to heartbeat checks,
 | |
| # especially as requests take a long time to complete.
 | |
| workers = 2
 | |
| threads = 4
 | |
| worker_tmp_dir = "/dev/shm"
 | |
| timeout = 60
 |