我的Jenkins+Spring Boot+Docker+Maven+GitLab自动化部署的学习

    整整一天学习了Jenkins+Spring Boot+Docker+Maven+GitLab自动化部署

环境:

   服务器:

         CentOS 7(阿里云)

      

   JDK:

         

   Docker:

 

        

   Jinkins:

        

     Maven:

        

   GIT:

       

下面是一些中间用到的命令:、

Docker相关

docker ps -a  查看容器

docker images 查看镜像

docker rmi (dockerImageId) 删除镜像  注:先把容器给删了

docker rm (dockerContainerId) 删除容器  注:先停止容器

docker stop (dockerContainerId) 停止容器

Tomcat相关

sh startup.sh 开启tomcat

sh shutdown.sh 关闭tomcat

查看启动情况 ps -ef | grep tomcat

查看端口占用情况  netstat -tunlp | grep 8080

杀死进程 kill -9 (PID)

Jenkins相关:

例子中使用的是容器启动Jenkins,所以启动和启动普通的WEB应用一致

GIT相关:

git add 添加到暂存区

git clone 拉取代码

git commit 提交到本地仓库

git push 上传代码

......

网络相关

ifconfig / ip addr 查看IP地址

ping 测试是否能够主机互联

确保防火墙关闭

service firewalld status 查看防火墙状态

jenkins安装插件:

具体装哪些,详情如何可以自行查阅资料,上边给我装过的

通过前面的准备,基本满足了这次实践的前置要求,下面开始我不断搜索,不断测试,最后总结的一个过程,中间一些做法或许不好,仅做参考

1)http://www.cherish.pro:8088/jenkins/

下面的关注点都是myTask这个构建任务

配置详情为:

·

最后保存即可

上面重点是GIT需要确保能够正常使用、以及maven需要正常使用,以及shell的编写

中间的一些信息,如docker镜像编译都是需要单独测试通过,只有这些单独测试都通过才能够做整合测试

下面是该docker镜像生成的过程

一个Boot项目,端口默认8080

只有一个Controller

@RestController
public class DockerController {

    @RequestMapping("/")
    public String index() {
        return "Hello Docker!";
    }
}

重点是编译配置

src/main/docker先创建Dockerfile文件

FROM cherishlailai/jdk_tomcat
VOLUME /tmp
ADD spring-boot-docker-0.0.1-SNAPSHOT.jar /app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

pom.xml中添加docker编译插件

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <!-- Docker maven plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
            <!-- Docker maven plugin -->
        </plugins>
    </build>

使用mvn package docker:build 可以编译出镜像,所以会有构建后置shell,启动容器并指定宿主机-docker映射端口

小结:通过上面的测试,jenkins自动化部署Demo已经成功跑通,中间遇到问题有:

1、对构建配置不理解,看了很多的文章

2、第一次使用docker编译插件,中间饶了些圈子

3、阿里云默认没有虚拟内存,下图是通过网上的资料配置虚拟内存后的截图,仅供参考

在构建的最后,失败,报错

Maven JVM terminated unexpectedly with exit code 137

 

综述:

       以上实现的功能是:替代运维人员每次拉取代码,上传服务端,维护各种路径,执行通用命令的一些操作,整个构建过程变得自动化,运维只需要看构建结果。

PS  :上述是自己的自动化构建部署的一次实例,供自己复习及给一些小伙伴一些参考。体验极佳!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值