创建文件夹 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
配置
安装
[Maven Integration plugin](https://plugins.jenkins.io/maven-plugin)
[Publish Over SSH](https://plugins.jenkins.io/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
配置jenkins得jdk为:/opt/java/openjdk
配置jekins的git
配置jekins的安装目录为:/var/jenkins_home/apache-maven-3.3.9
配置jekins打包后文件上传的ssh服务器地址
注意:hostname和username,密码自己去填
进入mydata目录,创建docker-project(这个用于后面自动化发布镜像打包)
mkdir docker-project
创建对应的需要发布的服务名称,就是项目名,如:
里面创建 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要修改的
项目配置
#这四项自行修改
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 ${group_name}/${app_name}:${app_version}
# 构建新版镜像
cd /mydata/docker-project/gmall-ums #jar上传到服务器的路径,一定要写对否者启动失败
docker build -t ${group_name}/${app_name}:${app_version} .
# 启动Docker镜像
docker run -p 20001:20001 --name ${app_name} \
-e TZ="Asia/Shanghai" \
-d ${group_name}/${app_name}:${app_version}
clean install -Dmaven.test.skip=true -pl gmall-ums -am