Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(一):Jenkins安装
写在前面
其实园子里很多大佬都写过,我也是一个搬运工很多东西不是原创的,不过还是想把自己安装的过程,记录下来如果能帮到大家的忙,也是一件功德无量的事;
运行环境
centos:7.2
cpu:1核 2G内存 1M带宽
其实用的腾讯云
安装jenkins
这里的jenkins就不从docker hub里面直接pull镜像安装了,为什么呢,我这里引用大佬的原话:
首先不直接从Docker Store上直接Pull Jenkins 的 Image 文件,因为待会需要进行dotnet core 的 Docker自动部署,需要对宿主机上的Docker进行直接操作,那么需要挂载 Docker 给 Jenkins Image,所以现在需要自己动手编写 Dockerfile 构建自定义的Jenkins。
1、构建自定义的Dockerfile
# touch Dockerfile
# vim Dockerfile
输入以下内容:
FROM jenkins
USER root
#清除了基础镜像设置的源,切换成腾讯云的jessie源
#使用非腾讯云环境的需要将 tencentyun 改为 aliyun
RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \
&& echo "deb http://mirrors.tencentyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list \
&& echo "deb http://mirrors.tencentyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.tencentyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
#更新源并安装缺少的包
RUN apt-get update && apt-get install -y libltdl7 && apt-get update
ARG dockerGid=999
RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group
# 安装 docker-compose 因为等下构建环境的需要
RUN curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
RUN chmod +x /usr/local/bin/docker-compose
2、build镜像
docker build . -t auto-jenkins
看到Successfully 莫名的心情愉悦。这就代表构建成功了;
3、创建jenkins项目文件的挂载目录
mkdir -p /var/jenkins_home
4、修改目录权限
这一步必不可少!会导致权限不足报错
chown -R 1000 /var/jenkins_home
5、run我们自定义jenkins镜像 auto-jenkins
这里我用7080作为对外的jenkins ip(因为我的8080被占用了)
docker run --name jenkins -p 7080:8080 -p 50000:50000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/bin/docker \
-v /var/jenkins_home:/var/jenkins_home \
-d auto-jenkins
run之后使用docker ps
查看运行中的容器,如看到如下图,表示jenkins已正常启动:
6、完成jenkins安装
这里需要安装密码,证明这是你的服务器,进入容器:
docker exec -it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
复制密码填好,点击继续;
如图,点击Install suggested plugins,安装jenkins常用插件
安装完毕后:
来到这里,其实安装结束了,填写完管理员信息后,开始你的自动化部署之旅吧!
接下来,请继续看我的另一篇文章 Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(二):部署(未发布)