docker部署nginx+uwsgi+flask

linux中选择ubuntu,因为可以直接使用apt安装。

docker pull ubuntu
docker run -it -p 5000:80 -v "/home/flask/project:/home/flask/project" ubuntu:latest
# -v 指定挂在点,容器与宿主机同步,但容器没有权限修改
apt update

apt install vim 
apt install net-tools
apt install -y wget
apt install -y gcc automake autoconf libtool make
apt-get install zlib1g-dev
  • python源码安装
## apt install python3
wget -c https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz
tar -xvzf Python-3.6.10.tgz
cd Python-3.6.10
./configure --prefix=/home/python3.6 --with-ssl   # --with-ssl 加不加都试过了,没用。重新装pip3吧
make && make install
ln -s /home/python3.6/bin/python3 /usr/bin/python3
apt install python3-pip
pip3 install -r requirement.txt
pip3 install --upgrade cython # 安装scikit-learn时需要
pip3 install uwsgi
  • docker在宿主机和容器之间传文件
docker cp [container id]:/a.txt .
docker cp a.txt [container id]:/
  • nginx
apt install -y nginx
cd /etc/nginx/
vim nginx.conf # 将usr 改为root
vim conf.d/mysite.conf # 建立这个文件
/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
/usr/sbin/nginx  -c /etc/nginx/nginx.conf

requirement.txt

numpy==1.18.1
pandas==0.25.3
scikit-learn==0.21.3
flask==1.1.1

mysite.conf

server {
  
        listen  80;
        server_name     172.17.0.2; # 这是container的ip地址,不是宿主机的ip
        charset utf-8;

        location / {

                root    /home/coder/project;
                index   index.html index.htm;
                include uwsgi_params;
                uwsgi_pass      127.0.0.1:5000;
                uwsgi_param     UWSGI_PYHOME    /usr/bin/python3;
                uwsgi_param     UWSGI_CHDIR     /home/coder/project;
                uwsgi_param     PYTHONPATH      /home/coder/project;
                uwsgi_param     UWSGI_MODULE    run;
                uwsgi_param     UWSGI_CALLABLE  app;

        }


}

docker部署nginx+uwsgi+flask_第1张图片

你可能感兴趣的:(linux)