Lorsque vous voulez simplement l'exécuter sur CentOS, que vous pouvez jeter.
Il est préférable d'installer python3 avec virtualenv.
(Une addition)
Enfin, j'ai écrit un Dockerfile. Je viens de réécrire cette procédure dans un Dockerfile. L'image résultante sera de 600 Mo, donc je pense qu'elle est trop lourde.
Sera-t-il encore plus léger si je le refais avec Alpine? J'aimerais connaître les meilleures pratiques lors de l'exécution de flask dans un environnement de production.
Versions
CentOS
CentOS Linux release 7.6.1810 (Core)
HTTPD
Installez également httpd-devel
.
httpd-tools-2.4.6-90.el7.centos.x86_64
httpd-2.4.6-90.el7.centos.x86_64
httpd-devel-2.4.6-90.el7.centos.x86_64
PYTHON
Entrez avec yum install python3
Python 3.6.8
mod_wsgi
avec yum
.pip3 install mod_wsgi
gcc
lors de l'installation.yum install httpd httpd-devel python3 python3-devel gcc -y
pip3 install mod_wsgi
LoadModule
, spécifiez celui installé ci-dessus. Il s'agit de la version de Python exécutée par Apache.python-path
spécifie le chemin incluant site-packages
Listen 8080
dans la configuration de la balle parent[root@ryo httpd]# cat /etc/httpd/conf.d/userdir.conf
<VirtualHost *:8080>
ServerName example.com
LoadModule wsgi_module /usr/local/lib64/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
WSGIDaemonProcess ml user=vagrant group=vagrant threads=5 python-path=/usr/local/lib64/python3.6/site-packages
WSGIScriptAlias / /opt/tryml/ryo/wsgi.wsgi
<Directory /opt/tryml/ryo/>
WSGIProcessGroup ml
Order deny,allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
import sys, os
sys.path.insert(0, os.path.dirname(__file__))
from sebserver import app as application
Dockerfile
FROM centos:7
COPY ["*.py", "wsgi.wsgi", "requirements.txt", "/var/www/html/"]
RUN yum install httpd httpd-devel python3 python3-devel gcc -y; pip3 install -r /var/www/html/requirements.txt; mkdir /var/www/html/static; chown apache:apache /var/www/html/*
COPY templates/sample.html /var/www/html/templates/
COPY docker/py.conf /etc/httpd/conf.d/
COPY docker/httpd.conf /etc/httpd/conf/
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
Recommended Posts