一、安装maven插件
前提,已经配置了maven
系统管理--全局工具配置 maven
新建任务是没有带maven的选项?需要安装maven插件
系统管理--插件管理--可选插件,搜索
Maven Integration (有的版本是叫Maven Integration Plugin)
直接安装
安装完,勾选复选框,jenkins重启
这样就可以 构建一个maven项目 了
二、新建任务(新建项目)
1、General
丢弃旧的构建
保存后,可以 继续配置 或 重新配置
2、源码管理
可选分支
添加凭据
3、构建触发器
默认
4、构建环境
勾选 Add timestamps to the Console Output
5、Pre Steps
默认
6、Build
pom.xml
clean install -Dmaven.test.skip=true
7、Post Steps
待配置
执行shell
#定义变量
APP_PROJECT="promoter"
APP_NAME="promoter-register"
APP_VERSION="1.0.0"
APP_PORT=8701
IMAGE_NAME="127.0.0.1:5000/$APP_PROJECT/$APP_NAME:$BUILD_NUMBER"
CONTAINER_NAME=$APP_NAME-$APP_VERSION
#进入target目录复制Dockerfile文件
cd $WORKSPACE/$APP_NAME/target
cp classes/Dockerfile .
#构建docker镜像
docker build --no-cache -t $IMAGE_NAME .
#推送docker镜像
docker push $IMAGE_NAME
#删除docker容器
cid=$(docker ps -a | grep "$CONTAINER_NAME" | awk '{print $1}')
if [ "$cid" != "" ]; then
docker stop $cid
docker rm -f $cid
fi
mkdir -p /logs/$APP_NAME
#启动docker容器
docker run -d -p $APP_PORT:8701 -v /logs/$APP_NAME:/logs/$APP_NAME -e "SPRING_PROFILES_ACTIVE=test" --name $CONTAINER_NAME $IMAGE_NAME
#删除Dockerfile文件
rm -f Dockerfile
docker push $IMAGE_NAME,推送到docker私有仓库,不是必须的,
docker 安装私有仓库 registry
https://blog.csdn.net/haveqing/article/details/89854408
其中,$BUILD_NUMBER,$WORKSPACE 在 可用的环境变量列表 内
我觉得这段脚本以后应该加些清理机制,如清除7天前生成的东西。
Dockerfile文件在应用项目下
FROM frolvlad/alpine-oraclejdk8:latest
USER root
RUN apk --no-cache add tzdata && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone
ENV LANG=zh_CN.UTF-8
VOLUME /tmp
ADD promoter-register-1.0.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
frolvlad/alpine-oraclejdk8,是一个含有jdk8的比较小的linux系统
apk --no-cache add tzdata 容器与宿主机时间同步
-Djava.security.egd=file:/dev/./urandom 快速生成随机数
Dockerfile文件详解
https://www.cnblogs.com/panwenbin-logs/p/8007348.html
8、构建设置
默认
9、构建后操作
默认