Flask 项目 Docker 化

最近完成了一个以 Flask 为框架的项目,为了更方便的对其进行部署,我选择先将该项目进行 Docker 化。

1. Flask 项目

建立一个 python 虚拟环境:

pip install virtualenv
mkdir Web
cd Web
virtualenv venv
venv\scripts\activate
# deactivate  # 退出虚拟环境
pip install flask

# 生成 requirements.txt 文件
pip freeze > requirements.txt

准备一个自己的项目,这里我用一个简单的例子(app.py):

#! /usr/bin/env python3
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
    return '

Hello World!

' @app.route('/hello') def hello(): return '

Hello!

' @app.route('/user/') def user(name): return '

Hello, %s!

' % name if __name__ == '__main__': app.run(host=0.0.0.0, debug=True, port = 5000)

这里注意,一定要设置 “host=0.0.0.0”,不然后期会导致连接不上的问题。

另外,如果用 Linux 执行 Python 脚本出现 “/usr/bin/env: ‘python\r’: No such file or directory” 的问题,因为 “#!/usr/bin/env python3” 在 ubuntu 会变成 “#!/usr/bin/env python\r”,而 \r 会被 shell 当成参数。可以通过下面的方法解决:

vi 
输入":set  ff=unix"
输入":wq" 

2. Dockerfile 编写

FROM python:3.6
COPY . /app
WORKDIR /app
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 5000
CMD ["python", "app.py"]

确保 Dockerfile 和项目处于同一目录下,不然会出现 COPY 的时候找不到文件的问题。

3. 利用 Docker 部署项目

docker build -t dashboard:0.0.1 .

当你有了一个镜像之后,然后把它运行起来就可以成功部署你的 Flask 项目啦!

docker run -d -p 5000:5000 dashboard:0.0.1

Flask 项目 Docker 化_第1张图片

Flask 项目 Docker 化_第2张图片

Flask 项目 Docker 化_第3张图片

这里的 ip 地址是你运行 image 的机器的 ip 地址,端口号是你运行 image 的时候所设置的端口号。

你可能感兴趣的:(CLOUD)