Python Flask项目在Gitlab CI中自动打包Docker镜像
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Flask项目在Gitlab CI中自动打包Docker镜像相关的知识,希望对你有一定的参考价值。
参考技术A 第一步,在Gitlab中新建一个项目第二步,克隆支本地
第三步,本地调通Python Flask项目
用VSCode打开该项目,先用flask在app.py下写了一个hello world:
然后在index.html中写下hello world,放在templates目录下:
安装flask依赖
用以下命令进行本地运行
打开浏览器进入localhost:5000即可看到Hello World
本地调试成功
第四步,本地调通Docker打包与容器运行
于是尝试利用docker打包成镜像,由于该项目依赖flask库,所以在根目录添加了requirements.txt文件,里面标明了依赖库以及相应的版本
然后编写好了Dockerfile
运行命令开始打包:
打包成功,运行容器:
在浏览器浏览localhost没有响应
查看日志发现没有报错
再尝试用浏览器打开127.0.0.1,也不行
网上搜索发现python flask在服务器不能直接运行,需要借助gunicorn
于是编写了配置文件gunicorn.conf.py:
同时修改了Dockerfile:
以及修改了依赖包requirements.txt:
再打包镜像、运行容器,发现可以正常运作了:
第五步,Gitlab CI设置脚本自动打包Docker镜像
由于自建Docker镜像仓库和账号是隐私信息,因此使用Gitlab CI变量代替,再在项目CI/CD设置内赋值
以上是关于Python Flask项目在Gitlab CI中自动打包Docker镜像的主要内容,如果未能解决你的问题,请参考以下文章
使用 GitLab CI 通过 python 脚本部署到 FTP
无法在 Gitlab CI 中使用 pip3 安装 python3 PyQt5 模块
Gitlab CI/CD 中设置 Python 虚拟环境的最佳实践是啥