侧边栏壁纸
博主头像
昂洋编程 博主等级

鸟随鸾凤飞腾远,人伴贤良品自高

  • 累计撰写 71 篇文章
  • 累计创建 79 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Jenkins(docker安装)部署Springboot项目

Administrator
2022-04-27 / 0 评论 / 0 点赞 / 40 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2024-06-14,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

由于jenkins使用docker部署的,而且要用jenkins来部署springboot项目的话,就需要在jenkins所在的docker容器内部使用docker命令、jdk环境、maven环境,git自带有,因此有两个需要注意的地方

  • ①:需要将宿主机的jdk、maven、docker挂载到jenkins的容器内部
  • ②:需要用root方式创建容器,因为docker命令只能用root或者docker组的用户

Docker部署jenkins

docker run --name=jenkins --user root -d -p 9080:8080 -v /usr/local/jdk1.8.0_271:/usr/local/java -v /usr/local/apache-maven-3.6.3:/usr/local/maven -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins

命令中的jdk、maven换成自己的安装目录

查看容器启动日志
image-1651056732533
上图中 红框中就是jenkins的初始密码

初始化jenkins

这里参考之前的文章Docker部署Jenkins初次使用配置部分

Jenkins全局配置

image-1651057039722
image-1651057090618
image-1651057121012

创建项目

image-1651057159343

通用配置

image-1651057186591
image-1651057255430

构建配置

image-1651057305943
构建的shell脚本代码

#!/bin/bash
#maven打包
/usr/local/maven/bin/mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./
service_name="angyum-blog-server"
service_prot=9090
#查看镜像id
IID=$(docker images | grep "$service_name" | awk '{print $3}')
echo "IID $IID"
if [ -n "$IID" ]
then
    echo "exist $SERVER_NAME image,IID=$IID"
    #删除镜像
    docker rmi -f $service_name
    echo "delete $SERVER_NAME image"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
else
    echo "no exist $SERVER_NAME image,build docker"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
fi
#查看容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
    echo "exist $SERVER_NAME container,CID=$CID"
    #停止
    docker stop $service_name
    #删除容器
    docker rm $service_name
else
    echo "no exist $SERVER_NAME container"
fi
#启动
docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
#查看启动日志
#docker logs -f  $service_name

注意代码仓库根目录必须有Dockerfile文件

# 依赖java8环境
FROM openjdk:8-jdk-alpine
# 创建 /app 目录, 作为程序的主目录
RUN mkdir -p /app/logs /app/temp
COPY ./angyum-blog-api/target/angyum-blog-api-1.0.0.jar /app/angyum-blog-api-1.0.0.jar

# 设置启动参数环境变量
ENV JAVA_OPTS="-server -Xmx2000M -Xms2000M -Xloggc:/app/logs/gc.log -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled \
        -XX:ErrorFile=/app/logs/hs_err_pid%p.log \
        -XX:HeapDumpPath=/app/logs -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+HeapDumpOnOutOfMemoryError \
        -Djava.io.tmpdir=/app/temp \
        -XX:+PrintHeapAtGC \
        -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=128M -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Duser.timezone=GMT+8" \
    SERVER_PORT=9090

# 配置暴露端口
EXPOSE ${SERVER_PORT}

# Docker 自身健康检查
HEALTHCHECK --interval=10s --timeout=3s \
        CMD curl -v --fail http://localhost:${SERVER_PORT} || exit 1

# 切换服务目录
WORKDIR /app
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -jar angyum-blog-api-1.0.0.jar" ]

最后保存

构建项目

image-1651057461049
看到如下输出日志说明成功了
image-1661910658565

访问项目

image-1651057515808

参考: https://blog.csdn.net/shayopron/article/details/121167066

0

评论区