Mein Setup basiert auf einer Flask-App mit einer PostgreSQL- und Redis-Datenbank. Darüber hinaus wird ein Arbeitsprozess gestartet, um asynchrone Aufgaben wie das Senden von E-Mails zu erledigen. Ich benutze Gunicorn, um mehrere App-Prozesse zu erstellen. Die Übergabe von Jobs von den App-Prozessen an den Worker-Prozess erfolgt über Redis.
Die Frage ist, ob der Arbeitsprozess in einem separaten Container gestartet werden soll, obwohl er auf demselben Code basiert. Derzeit verwende ich ein Startskript mit dem entsprechenden Bit:
gunicorn --bind=0.0.0.0:8000 --workers=3 manage:app &
python -u manage.py run_worker
Wie kann ich auch sicherstellen, dass sie den gemeinsamen Dateisystemcontainer wiederverwenden, wenn sie getrennt werden sollen? Sollten beim Skalieren von Gunicorn mit der Haupt-App oder den Worker-Prozessen zusätzliche Instanzen des Containers erstellt oder die Anzahl der Prozesse in einem Container erhöht werden?
Verwandte: Was sind die Vorteile der Dockerisierung von Nginx und PHP in verschiedenen Containern?
quelle