微服务通过Maven插件自动部署。
基础镜像jdk1.8的制作请参考docker入门。
Maven插件自动部署步骤:
(1)修改宿主机的docker配置,让其可以远程访问
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
(2)刷新配置,重启服务
systemctl daemon-reload
systemctl restart docker
docker start registry
(3)在工程pom.xml 增加配置
<build>
<finalName>appfinalName>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
<plugin>
<groupId>com.spotifygroupId>
<artifactId>docker-maven-pluginartifactId>
<version>1.2.0version>
<configuration>
<imageName>192.168.220.129:5000/${project.artifactId}:${project.version}imageName>
<baseImage>jdk1.8baseImage>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]entryPoint>
<resources>
<resource>
<targetPath>/targetPath>
<directory>${project.build.directory}directory>
<include>${project.build.finalName}.jarinclude>
resource>
resources>
<dockerHost>http://192.168.220.129:2375dockerHost>
configuration>
plugin>
plugins>
build>
以上配置会自动生成Dockerfile
FROM jdk1.8
ADD app.jar /
ENTRYPOINT ["java","-jar","/app.jar"]
(5)在windows打开cmd,进入项目pom.xml所在的目录
mvn package
进入pom.xml 所在的目录,输入以下命令,进行打包和上传镜像
mvn docker:build -DpushImage
执行后,会有如下输出,代码正在上传
(6)进入宿主机 , 查看镜像
docker images
输出如上内容,表示微服务已经做成镜像
浏览器访问 http://192.168.220.129:5000/v2/_catalog ,输出
{"repositories":["demo3"]}
(7) 启动容器:
docker run -di --name=demo3 -p 50000:50000 192.168.220.129:5000/demo3:0.0.1-SNAPSHOT
即可访问项目
持续集成 Continuous integration ,简称CI
随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。
持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。
持续集成具有的特点:
持续集成的作用:
Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现持续集成的软件工具。官方网站:http://jenkins-ci.org/。
Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
特点:
(1)将jdk-8u171-linux-x64.rpm上传至服务器(虚拟机)
(2)执行安装命令
rpm -ivh jdk-8u171-linux-x64.rpm
RPM方式安装JDK,其根目录为:/usr/java/jdk1.8.0_171-amd64
(1)下载jenkins
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.249-1.1.noarch.rpm
(2)安装jenkins
rpm -ivh jenkins-2.249-1.1.noarch.rpm
(3)配置jenkins
vi /etc/sysconfig/jenkins
修改用户和端口
JENKINS_USER="root"
JENKINS_PORT="8888"
vi /etc/init.d/jenkins
添加如下最后一行(jdk的路径)
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/usr/local/java/jdk/bin/java #jdk的安装目录
"
(4)启动服务
systemctl daemon-reload
systemctl start jenkins
(5)访问链接 http://192.168.220.129:8888
按提示找到密码输入, 点击继续
出现该jenkins似乎已离线
点击 跳过插件安装(后边插件全部手动上传安装)
然后创建用户, 下一步, 就到首页
(6)安装插件
点击 系统管理 - 插件管理
然后安装maven插件
安装失败, 这个错误查了很多文章都不管用, 所以点开每个detail 手动下载所有插件, 在插件管理中上传安装(按照失败的顺序安装)
然后搜索git, 安装git插件
修改admin密码(可以不修改, 用创建的账户就行):
find / -name config.xml
vim /var/lib/jenkins/users/admin_1769376840817810947/config.xml
#打开该配置文件找到节点
123456加密后:#jbcrypt:$2a 10 10 10MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq
#替换密码,重启 systemctl restart jenkins
完全卸载jenkins(弄错了就卸载重来)
systemctl stop jenkins.service
rpm -qa | grep jenkins
rpm -e 上边查询到的
rm -rf /etc/sysconfig/jenkins.rpmsave
rm -rf /var/cache/jenkins/
rm -rf /var/lib/jenkins/
rm -rf /var/log/jenkins
rm -rf /usr/lib/jenkins
(1)将Maven压缩包上传至服务器
http://maven.apache.org/download.cgi 官网下载tar.gz包
(2)解压
tar zxvf apache-maven-3.6.3-bin.tar.gz
(3)移动目录
mv apache-maven-3.6.3 /usr/local/maven
(4)编辑setting.xml配置文件vi /usr/local/maven/conf/settings.xml
,配置本地仓库目录,内容如下
仓库地址
/usr/local/repository
阿里镜像仓库
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
(1)JDK配置
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install git
whereis git
git --version
(1)回到首页,点击新建按钮 .如下图,输入名称,选择创建一个Maven项目,点击OK
选择git, 填写项目地址
填写pom.xml的位置, 填写命令, 用于清除、打包,构建docker镜像
clean package docker:build -DpushImage