本文演示在 Jenkins 官方镜像的基础上搭建能构建 Django 或 Django-Rest-Framework 应用的环境。
以下的配置文件仅适用于开发环境或原型验证
构建包含 Python 的镜像
因为 Jenkins 官方的 Docker 镜像中没有包含 Python 的环境, 所以需要在镜像中加入 Python 环境。
我们选择以官方的 alpine 镜像为基础,这样构造出来的镜像比较小。 使用下面的 Dockerfile
1 | FROM jenkins/jenkins:lts-alpine |
在以上的代码中,我们使用 alpine 国内源代替了默认国外的源以提升系统更新,下载的速度。在安装 Python 的第三方包时,也指定了国内的源,同样是为了提高速度。
为了安装 pip, 我们使用了一个特别的 get-pip.py 脚本(下载的是zip文件,请自行解压)。 需要下载并和 Dockerfile 放在同一目录下。
以上准备工作完成后,在目录中应该包含 Dockerfile 和 get-pip.py 两个文件。
然后在目录中执行以下命令镜像构建:
1 | docker build -t="jenkins-python:1.0" . |
构建完成后,就可以在 docker images 中看到新构建的 jenkins-python:1.0 镜像了。
用 Docker-compose 启动容器
新建名为 docker-compose.yml 的文件,拷贝以下内容:
1 | version: '3.7' |
保存后,执行:
1 | docker-compose up -d |
就可以看到名为 MyJenkins 的容器运行了。 然后到浏览器中进行 Jenkins 的设置, 可参考 使用 Docker-Compose 搭建 Jenkins 服务
设置构建脚本
在 Jenkins 新建的项目中,在构建方法中选择使用 shell 命令,然后在输入框中输入以下内容:
1 | python3 manage.py migrate |
这样就在项目构建时执行相关的测试了。