jenkins实现自动化部署

下载镜像 版本选择2.401.1

docker pull jenkins/jenkins:2.401.1

进入jenkins容器 docker exec -it jenkins /bin/bash

查看密码 cat /var/jenkins_home/secrets/initialAdminPassword

一次性挂载完成,jdk和maven挂载之前选好版本在进行挂载挂载完成后修改比较麻烦

:前为宿主机位置

:后为容器内部,没有会自动创建对应文件及位置

不一次性挂载完成也可以,在/var/jenkins_home中创建一个文件夹将jdk和maven对应的版本放入文件中即可

docker run -d --name jenkins -p 8099:8080 -p 8889:8888 -p 50000:50000 
-v /usr/jdk1.8.0_321:/usr/jdk1.8.0_321 
-v /usr/apache-maven-3.9.6:/usr/apache-maven-3.9.6 
-v /usr/local/docker/jenkins:/var/jenkins_home jenkins/jenkins:2.401.1

将 hudson.model.UpdateCenter.xml 文件中的 url 下载插件的镜像 改为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json(清华大学镜像源)

没有一次性全部挂载接下来的操作

在挂载出来的目录下创建 myapps 给文件夹赋权限

将 maven 和 jdk 传入 文件中

ma\\ven

jdk

jdk版本尽量使用与项目一样的版本

jdk1.8.0_131的jdk

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie"  http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

解压

tar -zxvf jdk-8u131-linux-x64.tar.gz

重启容器后 访问 ip:挂载的端口号

选择自定义插件 下载完成后设置用户名密码

Maven Integration Publish Over SSH 手动下载两个插件

git下面两种都可以随便选一种即可

如果报 403 的话 将 jenkins中config.xml中的

配置SSH Jenkins配置SSH连接_jenkins ssh:-CSDN博客

创建自有或者maven都可以

Source files:准备发送的文件,该文件是相对于这个项目的workspace目录,也就是$JENKINS_HOME/workspace/xxxx/。例如要发送/home/jenkins_home/workspace/tf/target/123.war到目标目录,则设置Source files为target/123.war。如果要发送src下的所有文件,可以设置为target//*.*。

Remove prefix:例如设置为target/就是只发送123.war文件,如果不填会创建target目录层级。

Remote directory:目标目录,比如/usr/local。

Exec command:最后执行的指令。

app_name='test'
app_version='1.0.jar'
echo '----copy jar----'
# 停止容器
docker stop ${app_name}
# 删除容器
docker rm ${app_name}
# 删除镜像
docker rmi ${app_name}:${app_version}
# 构建新版镜像
cd /mydata/docker-project/test #jar上传到服务器的路径,一定要写对否者启动失败
docker build -t ${app_name}:${app_version} .
# 启动镜像
docker run -p 访问的端口号:8080 --name ${app_name} \
        -e TZ="Asia/Shanghai" \
        -d ${group_name}/${app_name}:${app_version}
echo '-----start container-----'

很简单的一个配置项,选择mvn版本,在填一下目标,over。正常来说是over了

在此目录下创建一个 dockerfile 或者在项目的根目录中创建一个dockerfile

FROM openjdk:18.0.2
MAINTAINER lxj
VOLUME /tmp
ARG JAR_FILE=test.jar
COPY ${JAR_FILE} test.jar
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN bash -c 'touch /test.jar'
RUN chmod +x /test.jar
ENTRYPOINT ["java", "-jar", "/test.jar"]

FROM openjdk:18.0.2:基于 openjdk:18.0.2 镜像构建新的镜像。

MAINTAINER xuqing:指定作者信息为 xuqing,不过在 Docker 17.04 之后,已经不推荐使用 MAINTAINER 指令,而是使用 LABEL 指令。

VOLUME /tmp:指定了/tmp目录作为一个数据卷,用于临时存储数据。这样可以在容器之间共享数据,或者持久化数据。

ARG JAR_FILE=./*.jar:定义了一个参数 JAR_FILE,并设置默认值为当前目录下的所有.jar文件。

COPY ${JAR_FILE} gmall-ums.jar:将本地的 JAR 文件复制到容器中,并重命名为 gmall-ums.jar。

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone:设置容器的时区为亚洲/上海。

RUN bash -c 'touch /gmall-ums.jar':在容器中创建一个名为 gmall-ums.jar 的空文件。

ENTRYPOINT ["nohup","java","-jar","/gmall-ums.jar"]:容器启动时执行的命令,使用 nohup 后台运行 java -jar /gmall-ums.jar 命令,启动 Spring Boot 应用

部署的是一个springBoot项目springCloud与之类似,修改获取jar包的位置即可

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值