Minha configuração é baseada em um aplicativo Flask que possui um banco de dados PostgreSQL e Redis. Além disso, um processo de trabalho é iniciado para lidar com tarefas assíncronas, como o envio de emails. Eu uso o Gunicorn para criar vários processos de aplicativos. A passagem de tarefas dos processos do aplicativo para o processo do trabalhador é feita via Redis.
A questão é: o processo de trabalho deve ser iniciado em um contêiner separado, apesar de ser baseado no mesmo código? Atualmente, uso um script de início com o bit relevante:
gunicorn --bind=0.0.0.0:8000 --workers=3 manage:app &
python -u manage.py run_worker
Além disso, se eles devem ser separados, como posso garantir que eles reutilizem o contêiner do sistema de arquivos comum? Além disso, ao dimensionar o Gunicorn com o aplicativo principal ou com os processos de trabalho, instâncias adicionais do contêiner devem ser criadas ou o número de processos em um contêiner deve ser aumentado?
Relacionado: Quais são as vantagens de dockerizing nginx e php em diferentes contêineres?