阿里云Ecs+Jenkins+Gitee自动,一键部署SpringBoot自己博客项目:
最近看见网上很多Jenkins的自动部署SpringBoot的Demo,但是都要自己安装JDK,Maven。。。本人属于比较懒,懒到家那种,就看了看多网上的视频,还有教程,要么不成功,要么成功不了,到最后还是把自己的博客项目部署了上阿里云的ECS,强烈推荐大家试一试,到最后我也把相关的代码开放出来,还有文档
1.1 准备工作(阿里云服务器安装Docker)
购买阿里云的服务器,这个就不用说了吧,我给大家看看我购买的
1 通过SSH链接,安装Docker,并设置开机启动
安装docker
#卸载系统之前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum install -y yum-utils
# 配置镜像
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
# 设置开机自启动
sudo systemctl enable docker
docker -v
这些是用过SSH链接阿里云服务器后,安装Docker的命令,如果成功,docker -v后会看到相应的Docker版本信息
1.2 通过Docker安装Jenkins
1.2.1 拉取镜像,这里我采用的是jenkins:lts版本的Jenkins
# 拉取对应的Jenkins的镜像
docker pull jenkins/jenkins:lts
1.2.2 设置Jenkins的挂在目录文件
1 在mydata下面创建jenkins_home文件夹
cd /mydata
mkdir jenkins_home
2 更改jenkins_home的权限
chown -R 1000 /mydata/jenkins_home/
1.2.3 启动Jenkins
docker run -di --name=jenkins -p 9122:8080 -v /mydata/jenkins_home/:/var/jenkins_home jenkins/jenkins:lts
启动成功的图片
2 Jenkins的配置
#2.1.1
启动后,第一次登陆看到界面
在控制台输入查看Jenkins启动日志,可以得到秘钥
docker logs jenkins
复制->粘贴
然后注册账户,重启,登陆
2.2 jenkins的配置
2.2.1 Maven
2.2.2 SSH
2.2.3 JDK
这里的Orcale的账号密码在这个网站 ,可能需要科学上网
http://bugmenot.com/view/oracle.com 分享一个可以用的
sosen65433@kahase.com SuckMyDick123!@#
最后设置完成截图
总结: 安装插件 1 maven 2 JDK 3 SSH工具
3 代码
3.1
本文利用的是 docker-maven-plugin 插件来进行打包成jar,没有利用DockerFile,后面如果大家有写好的DockerFile方法,我可以请教下,我一直没有成功
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- docker-maven-plugin插件(不带Dockerfile文件) -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.1.0</version>
<executions>
<execution>
<id>build-images</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--用于指定镜像名称-->
<imageName>${project.name}:${project.version}</imageName>
<dockerHost>******(替换成自己的阿里云ECS开启的Docker images地址,例子{http://**1.***.**.**5:*2*3})</dockerHost>
<!--用于指定基础镜像,相当于Dockerfile中的FROM指令-->
<baseImage>java:8</baseImage>
<!--相当于Dockerfile的ENTRYPOINT指令-->
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<!--用于指定需要复制的根目录,${project.build.directory}表示target目录-->
<directory>${project.build.directory}</directory>
<!--用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar包文件。-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
千万不要用默认的Docker images文件上传窗口!! 会被攻击成为矿机,亲测
3.2 开启Docker的允许上传镜像端口
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
systemctl daemon-reload
systemctl restart docker
docker start registry
3.3.1构建任务
3.3.2 代码管理
代码上传到码云,然后进行填写
3.3.3 对代码用Maven进行打成Jar包
clean package
3.3.4 对打包号的镜像上传到自己的服务器
自己用xshell链接的,就用链接自己服务器的账号密码进行链接
后面编写的sh脚本文件,是对Docker Images的启动,这个时候,输入docker Image能看到镜像名称,自己在自己的目录下新建一个sh可执行的脚本,Vim指令
自己编写这个脚本,相关的指令自己更改端口等等
#!/usr/bin/env bash
app_name='lblog'
docker stop ${app_name}
echo '------stop container----'
docker rm ${app_name}
echo '------rm container----'
docker run -di --name=${app_name} -p 9800:9800 lblog:0.0.1-SNAPSHOT
echo '------start container----'
docker ps
最后!!!!!!可执行脚本,需要给予权限 chmod +x ./wxapi.sh(自己名称自己改)!!,然后启动项目,可能失败,看看日志,第一次下载JDK的时候可能会慢一点,其他还好,下面是我启动的时候截图
上述都是自己在阿里云默认打开端口防火墙的,需要的就打开,不需要就关闭。有空多交流,QQ:954248544,部署完成就可以打开自己博客了