Docker + Jenkins + Gitee 自动化部署项目
1.简介
各位看官老爷,本文为Jenkins实战,注重实际过程,阅读完会有以下收获:
- 了解如何使用Docker安装Jenkins
- 了解如何使用Jenkins部署maven项目
- 了解如何使用Jenkins+Gitee实现自动化部署
2.Jenkins介绍
相信,正在读这篇文章的你,对Jenkins应该有或多或少的了解,就算没有也应该在某个地方听说过。👍
接下来,我们就一起来进行探索吧。
2.1 Jenkins是什么
Jenkins是一个开源的自动化工具,可以自动化地完成构建、测试、交付或部署等任务。总之重点就是三个字:自动化
,至于如何实现这些功能,Jenkins基于插件化的机制,提供了众多的插件来完成持续集成与持续部署。
2.2 什么是持续集成与持续部署
在软件开发中经常会提到持续集成(Continuous Integration)和持续部署(Continuous Delivery),那么它们的真正意思是什么呢?
『持续集成』:当我们向代码仓库提交代码后,可以对变更进行监测,进而实现自动拉取代码、构建、测试等操作。试想一下,如果这些操作都手动进行,效率是非常低的,因而提出了持续集成。
『持续部署』:持续集成帮助我们实现了对项目的自动化构建、测试等工作,我们知道,项目最终需要部署到服务器上,在不借助Jenkins的情况下,需要我们手动将项目部署到服务器上,如果项目数量多,就会容易出现错误且效率低,而且特别麻烦,因而提出了持续部署,来实现对项目的自动化部署。
2.3 Docker 安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 启动容器 systemctl start docker
3.Docker?Nexus镜像仓库
3.1拉取镜像
docker search nexus
docker pull sonatype/nexus3
3.2创建宿主机挂载目录,并设置权限
mkdir -p /mydata/docker/nexus
chown -R 755 /mydata/docker/nexus
3.3运行镜像,访问nexus
docker run -d --restart=always --name=nexus3 \
-p 8081:8081 \
-p 7070:7070 \
--privileged=true \
-e INSTALL4J_ADD_VM_PARAMS="-Xms512M -Xmx512M -XX:MaxDirectMemorySize=512M" \
-v /mydata/docker/nexus:/nexus-data \
sonatype/nexus3
访问
http://IP(域名):8081/
,会出现如下欢迎界面。点击右上角登录。会提示我们去
/nexus-data/admin.password
中查看密码。我们这里直接去映射的宿主机目录下查看。
cat /mydata/docker/nexus/admin.password
输入初始密码登录后,会提示设置新密码。
设置不允许匿名访问。
3.3 私服仓库配置
点击设置按钮,然后选择Repositories
,可以看到默认存在了maven的仓库。
点击Create repository,进行如下配置,我们的私服仓库就搭建好了。
3.4 登录docker仓库
尝试在Jenkins服务器执行登录docker仓库的命令。
docker login -u admin -p 123456 192.168.110.101:7070
却报错了,大概意思是返回的我需要一个HTTPS,你却返回的是HTTP。
这是docker的安全机制,我们可以进行配置,让其允许客户端发送HTTP请求。
vim /etc/docker/daemon.json
修改daemon.json
,并添加如下内容。
{ "insecure-registries":["192.168.110.101:7070"] }
然后重启docker。
systemctl restart docker
重新执行登录命令。如下界面表示登录成功。
记得,应用服务器也需要进行同样的操作。
4.Docker安装Jenkins
系统环境:Centos7 + Docker laster
4.1 拉取镜像
docker pull jenkins/jenkins:lts
4.2?文件夹挂载
mkdir -p /mydata/docker/jenkins
4.3?启动容器
docker run -d --restart=always --name jenkins -uroot -p 8080:8080 -p 50000:50000 \
-v /mydata/docker/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
jenkins/jenkins:lts
说明:这里我们挂载了宿主机的/var/run/docker.sock
以及/usr/bin/docker
,是因为,我们后续需要在容器内执行docker相关命令
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!