Docker + Jenkins + ASP.NET Core + 持续部署

目的:搭建一个在linux服务器上持续部署asp.net core项目的例子,asp.net core项目和Jenkins都是容器化部署。
环境:ubuntu 18.04 (centos也可以)
Docker version 18.09.6
基础Jenkins镜像 jenkins/jenkins

持续集成是什么?http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html

Jenkins介绍https://blog.csdn.net/miss1181248983/article/details/82840006

1.在ubuntu服务器上,安装docker

安装方式参考文档:https://docs.docker.com/install/linux/docker-ce/ubuntu/
加入docker用户组:https://docs.docker.com/install/linux/linux-postinstall/

2.构建Jenkins镜像,以jenkins/jenkins镜像为基础

FROM jenkins/jenkins:lts
# 可以根据需要安装工具
USER root
RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
USER jenkins

如果不想自己构建镜像,可以直接用我构建好的,在docker hub上:forestgzh/jenkins (不保证长期有效。。)

3.在码云Gitee上托管asp.net core的项目代码(因为码云有免费私人仓库。。)

image.png

4.启动Jenkins

在服务器上启动forestgzh/jenkins镜像:

docker run --name my-jenkins -p 8080:8080 -p 50000:50000 \
    -v ~/jenkins:/var/jenkins_home \
    -v /usr/bin/docker:/bin/docker \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -d forestgzh/jenkins

-v /var/run/docker.sock:/var/run/docker.sock 这条指令是为了Jenkins容器内能与宿主机的docker通信,这条非常关键。

5.配置Jenkins

Jenkins容器启动完成后,用 ‘docker logs 容器名’ 查看密码:一串数字,一眼就看到了,
然后在浏览器打开:http://ip:8080 ,ip是服务器的ip地址

进去后输入刚刚docker logs查看到的密码,进去后设置用户,一直下一步就可以了。
然后点击系统管理->插件管理->下载Gitee插件


image.png

然后,系统管理->系统设置,配置如下:
具体配置过程参考:https://gitee.com/help/articles/4193#article-header0

image.png

配置完后保存。

回到首页,新建一个任务:


image.png

然后配置任务:


image.png

然后配置Build Triggers


image.png

最后,最重要的是Build,下拉框选择执行shell:


image.png
#!/bin/bash
# 获取短版本号
GITHASH=`git rev-parse --short HEAD`
sudo docker stop testjenkins
sudo docker rm testjenkins
echo ---------------Building Docker Image...------------------
sudo docker build -t testjenkins:$GITHASH .
sudo docker tag testjenkins:$GITHASH testjenkins:latest
echo ---------------Launching Container...------------------
sudo docker run --name testjenkins -d -p 5000:80 testjenkins:latest

Jenkins就是根据前面的触发器触发这个脚本去构建镜像,持续部署。
这边设的是每两分钟,可以自行设置Gitee webhook 触发构建,Gitee webhook参考文档:https://gitee.com/help/articles/4193#article-header13

配置完后保存,查看任务,可以看到构建部署历史:

image.png

再看项目,每次提交后,能访问到最新的页面:


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容