jekinss自动化发布

238 阅读1分钟

创建文件夹 mydata/jenkins

给权限 chmod 777 mydata/jenkins

下载镜像 docker pull jenkinsci/blueocean

 

启动 docker run -d -p 8020:8080 -p 50000:50000 -v /mydata/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkinsci/blueocean

 

访问:http://Ip:8080

 

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

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

 

配置

图片1.png

安装

Maven Integration plugin

Publish Over SSH

 

安装maven

把maven打包软件放入/mydata/jenkins下面(因为这个目录是背挂载了得,所以实际上他在jekins得容器目录里面)

在/mydata/jenkins创建mavenRepository

chmod 777 mavenRepository给权限

 

配置jenkins得maven路径为:/var/jenkins_home/apache-maven-3.3.9/conf/settings.xml

图片2.png

 

配置jenkins得jdk为:/opt/java/openjdk

 

图片3.png

配置jekins的git

图片4.png

配置jekins的安装目录为:/var/jenkins_home/apache-maven-3.3.9

图片5.png

配置jekins打包后文件上传的ssh服务器地址

注意:hostname和username,密码自己去填

 

图片6.png

图片7.png

 

进入mydata目录,创建docker-project(这个用于后面自动化发布镜像打包)

mkdir docker-project

创建对应的需要发布的服务名称,就是项目名,如:

图片8.png

里面创建 Dockerfile,内容为

FROM java:8

作者

MAINTAINER 熬夜不秃头

VOLUME 指定了临时文件目录为/tmp。

其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp

VOLUME /tmp

ARG JAR_FILE=./*.jar

COPY ${JAR_FILE} gmall-ums.jar

设置时区

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

运行jar包

RUN bash -c 'touch /gmall-ums.jar'

ENTRYPOINT ["nohup","java","-jar","/gmall-ums.jar"]

 

 

红色标记的是需要打包的jar要修改的

项目配置

图片9.png

#这四项自行修改

group_name='gmall'

app_name='gmall-ums'

app_version='1.0.jar'

echo '----copy jar----'

停止容器

docker stop ${app_name}

删除容器

docker rm ${app_name}

删除镜像

docker rmi groupname/{group_name}/{app_name}:${app_version}

构建新版镜像

cd /mydata/docker-project/gmall-ums #jar上传到服务器的路径,一定要写对否者启动失败

docker build -t groupname/{group_name}/{app_name}:${app_version} .

启动Docker镜像

docker run -p 20001:20001 --name ${app_name} \

        -e TZ="Asia/Shanghai" \

        -d groupname/{group_name}/{app_name}:${app_version}

clean install -Dmaven.test.skip=true -pl  gmall-ums -am

图片10.png