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 虚拟环境的最佳实践是啥

gitlab-ci.yaml:在多行 python docker 镜像中运行 python

CI 配置将托管在 GitLab 内的不同项目中

Gitlab CI:opencv-python 的构建***失败