docker安装flask网站方法
1,新建requirements.txt
和Dockerfile
文件在网站工程根目录下,并设置好两个文件
2,requirements.txt文件模板可如下格式:
Flask==1.0.2
SQLAlchemy==1.2.11
wtforms==2.3.3
flask-wtf==0.15.1
pymysql==1.0.2
3,Dockerfile文件模板可如下格式:
FROM python:3.8
COPY . /app/
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python", "main.py"]
第一行为基础环境(原本以为基础环境必须是操作系统呢,还是太小瞧docker技术了)
第二行为将所有文件拷入到镜像的/app
目录下。这个目录是自己命名的,但必须要与下一行的workdir
后的目录一致。
第三行为工作目录,所有的run命令都会在这个目录下进行。
第四行为执行命令行,在此为安装requirements.txt文件下的安装包。
第五行为设置端口为5000(暂时没有搞清楚是docker的5000还是操作系统的5000./笑哭)
第六行为命令行运行文件。
所遇问题
上述都设置好后,从网络找的demo可以跑通,但就是自己的系统无法跑通,开始以为是需要安装的环境太多,哪里出错了,最后发现是代码行出错了。
在主函数中,作者写为如下格式:
if __name__ == '__main__':
app.run()
这样写后映射出docker的地址为127.0.0.1:5000
但是就是不通,链接不上,不知道为什么。
修改以后:
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000)
修改以后会自动转换ip地址,就可以通,不知其所以然。。。。。
app.py示例代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "hello docker"
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000)
有问题可留言