热点新闻
20230308--Jenkins+Gogs自动远程Docker环境部署django项目
2023-07-15 07:55  浏览:2647  搜索引擎搜索“手机低淘网”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在手机低淘网看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

1.Jenkins安装或确认必要插件

jenkins安装或确认必要插件gitlab、Publish Over SSH。
Dashboard--Manage Jenkins--Plugin Manager







2.Publish Over SSH配置

jenkins配置SSH连接django服务部署的对象服务器
Dashboard--Manage Jenkins--Configure System,找到 Publish over SSH中SSH Server。输入目标服务器IP、登录用户、登录用户密码等,最后Test Configuration







3.Jenkins中创建Job

Dashboard--New Item--输入Item name--选择「构建一个多配置项目」--点击OK

配置Job
Source Code Management :Configure--General--Source Code Management--Git--输入Repository URL--选择登录gogs的用户Credentials--选择Branch----Save;






Build Triggers:选择Trigger builds remotely--Authentication Token;选择Build when a change is pushed to Gogs




Configuration Matrix:选择Agents--Label--Individual nodes--built-in.




Build Environment :选择Send files or execute commands over SSH before the build starts--设置SSH Server、Transfers




注意docker build image可能耗时较长,默认该过程限时120S,需要Advanced选项中延长timeout时间。

注意Transfers Set Source files、Remote directory、Exec command,其中Exec Command中项目执行sh脚本参考如下:

# 由于向Docker容器中拷贝文件会影响递归结构,所以需要将项目目录先压缩 cd /root/ tar -czvf local_cmdb.tar.gz local_cmdb echo `pwd` docker rm -f local_cmdb cd /root/local_cmdb mv -f /root/local_cmdb.tar.gz ./ # 创建Docker容器镜像 docker build -t local_cmdb:v1 -f Dockerfile . #启动Django项目 docker run -it -d --name local_cmdb -p 80:80 local_cmdb:v1

4.gogs配置web钩子

选择我的仓库--仓库设置--管理Web钩子--添加Web钩子--选择Gogs--填写推送地址、选择数据格式、密钥文本可免、设置希望触发Web钩子的事件、选择激活--点击添加Web钩子。参考20230129-Jenkins+Gogs自动打包项目






5.测试

开发环境提交代码

下载项目源码

# git clone http://172.26.37.127:3000/luorf/CMDB3.git # cd CMDB3

编写制作Django项目镜像Dockerfile文件

# vi Dockerfile FROM almalinux #选择almalinux为基础镜像 MAINTAINER luorf #作者 RUN yum install -y python39 gcc python39-devel mysql-devel && yum clean all && rm -rf /var/cache/yum/* #yum安装python等 RUN ln -sf /usr/bin/python3.9 /usr/bin/python && ln -sf /usr/bin/pip3.9 /usr/bin/pip #配置python环境 ADD local_cmdb.tar.gz /root/ #提交项目包 RUN pip install uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple #安装uwsgi RUN pip install -r /root/local_cmdb/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #安装项目需要的python组件 EXPOSE 80 #暴露80端口 ENTRYPOINT python /root/local_cmdb/manage.py runserver 0.0.0.0:80 #启动项目

提交修改

# git add . # git commit -m "django" # git push origin master

gogs自动推送确认:







jenkins脚本执行确认:







远程Docker服务器镜像制作成功,容器启动正常,django web访问及利用正常

# docker image ls |grep local_cmdb local_cmdb v1 e8ed8e500b50 25 minutes ago 568MB # docker ps |grep local_cmdb 8ccc5bc58bbc local_cmdb:v1 "/bin/sh -c 'python 鈥 26 minutes ago Up 26 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp local_cmdb # curl -I http://172.26.37.126/admin




此仅仅是实现Django项目的测试发布,完整的发布,需要nginx+uwsgi+django实现,待续。

参考URL

https://www.cnblogs.com/91parson/p/16511416.html

发布人:ee85****    IP:101.229.90.***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发