搭建适合自己的flask代码运行的docker环境

1 根据官网centos7的docker image生成uwsgi image

(1)在docker-host上建立,一个目录uwsig,进入目录新建一个dockerfile,内容如下

###该dockerfile文件,是基于官方的centos7的image,生成uwsgi的image

FROM docker.io/centos:7
RUN ["/bin/bash", "-c", "yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm"]
RUN ["/bin/bash", "-c", "yum -y install MySQL-python.x86_64"]
RUN ["/bin/bash", "-c", "yum -y install python-pip python-devel"]
RUN ["/bin/bash", "-c", "yum -y install gcc pcre-devel openssl-devel"]
RUN ["/bin/bash", "-c", "pip install flask flask-wtf flask-bootstrap flask-script flask_uploads uwsgi"]

(2)根据dockerfile生成uwsgi image

build image built -f dockerfile -t uwsgi:1.0 ./

(3)确认uwsgi image创建成功

docker image ls

 2 flask项目代码框架

(1)flask项目框架:

        myapp文件内为项目源代码,

        manage.py为运行项目源代码的入口,

        uwsgi.ini为uwsgi服务器运行需要的配置文件,

        dockerfile.ini作用是用来个性化定制本项目运行所需要的docker环境。

(2)dockerfile.ini文件内容

FROM uwsgi:1.0
#-------------------------expose port to exterior-----------------------------------------
EXPOSE 5000
#--------------------------copy our application source code to container------------------
COPY myapp/ /myproject/myapp/
COPY manage.py /myproject/manage.py
#------------------run our application when container starts using flask inner server-----
#WORKDIR /myproject
#CMD ["/bin/bash", "-c", "python manage.py runserver --host 0.0.0.0 --port 5000"]

#(3)----------------run our application when container starts using uwsgi server---------
COPY uwsgi.ini /myproject/uwsgi.ini
WORKDIR /myproject
CMD ["/usr/bin/uwsgi", "uwsgi.ini"]

(3)uwsgi.ini配置文件内容

[uwsgi]
http =  0.0.0.0:5000
#socket =  0.0.0.0:5000
pythonpath = /myproject
wsgi-file = manage.py
callable = app
processes = 4
threads = 2
stats = 127.0.0.1:5050

(4)可独立运行,也可被uwsgi.ini调用的manage.py文件内容

#!/usr/bin/python
# coding:utf-8

from flask_script import Manager
from myapp import app

manager = Manager(app)
if __name__ == '__main__':
    manager.run()

3 根据uwsgi image以及dockerfile.ini运行一个uwsgi container

    3.1  方法一:直接在docker-host上运行容器

        (1)复制整个flask代码框架到docker-host上

        (2)定制本项目的docker环境

[root@cat docker]# cd myproject/

[root@cat myproject]# docker image build -f dockerfile.ini -t myproject:cat ./

[root@cat myproject]# docker image ls 

        (3)运行容器

[root@cat myproject]# docker container run -d -p 10.74.53.141:5000:5000 --name myproject_cat myproject:cat 

[root@cat myproject]# docker container ls

      3.2  方法二:利用pycharm(位于win10上)

       (1)配置pycharm运行和调试远程docker内部程序参数

        (2)单击运行按钮,开始运行出现

        (3)单机下方的Docker按钮,查看结果

猜你喜欢

转载自blog.csdn.net/Wendy019900107/article/details/82112717