mirror of
https://github.com/immich-app/immich.git
synced 2024-12-26 10:50:29 +02:00
d5d0624311
* 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 32e706c7f3
.
* 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
|