Je reconnais qu'il est préférable de configurer un serveur uwsgi en plus de flask et nginx, mais c'est le résultat de ce qui peut être fait à partir de la configuration actuelle.
J'ai configuré un serveur Flask + Nginx sur Docker, mais le journal Flask n'est sorti que sous forme de fichier et je ne peux pas le vérifier à l'invite des journaux docker run ou docker. Je veux pouvoir le faire d'une manière ou d'une autre.
Je vais l'omettre considérablement, mais c'est comme suit.
Dockerfile
FROM centos:centos7
CMD ["/bin/bash", "./start.sh"]
start.sh
# !/bin/bash
uwsgi --ini=uwsgi.ini
nginx -g "daemon off;"
uwsgi.ini
daemonize = /var/log/uwsgi/uwsgi.log
Dans l'état ci-dessus, le processus uwsgi s'exécute en tant que démon et Nginx en tant que travail de premier plan. Et tous les journaux sont envoyés dans /var/log/uwsgi/uwsgi.log spécifié par daemonize.
J'ai essayé plusieurs choses, mais cela n'a pas fonctionné, et par conséquent, la troisième méthode a fonctionné.
Je pense que la sortie de la console a déjà été faite, mais vérifiez si cela peut être fait en ajoutant un flux supplémentaire de sortie de la console.
logger.addHandler(logging.StreamHandler())
Cependant, daemonize semble envoyer ce qui est sorti en standard dans un fichier, et le contenu du flux ajouté est également sorti dans le fichier.
daemonize affiche la sortie standard et la sortie d'erreur vers le fichier spécifié, mais j'ai osé essayer d'en faire une sortie standard en sortant vers / dev / stdout. J'ai pu sortir avec succès sur la sortie de la console, mais la fonction de rotation du journal de flask vérifie le fichier et un message d'erreur est constamment affiché. J'ai cherché un moyen de supprimer la fonction de rotation du journal, mais j'ai abandonné parce que je ne pouvais pas la trouver.
uwsgi_check_logrotate()/lseek(): Illegal seek [core/logging.c line 494]
Ajout de la surveillance de la queue sur le shell de démarrage. Confirmez que le journal peut être sorti à la fois vers le fichier et la console. J'ai besoin de faire correspondre les fichiers de sortie dans start.sh et uwsgi.ini, mais j'ai pu le faire pour le moment.
start.sh
#Partie supplémentaire
touch /var/log/uwsgi/uwsgi.log
tail -F /var/log/uwsgi/uwsgi.log > /dev/stdout &
uwsgi --ini=uwsgi.ini
nginx -g "daemon off;"
Recommended Posts