- 系统管理 -> 系统配置 -> 全局属性 -> 环境变量 -> 新增键值对
- DOCKER_JENKINS_WORKSPACE : /var/lib/docker/volumes/soft_jenkins_home/_data/workspace
cd /var/lib/docker/volumes/soft_jenkins_home/_data && mkdir -p ./soft/jdks
wget https://corretto.aws/downloads/latest/amazon-corretto-8-x64-linux-jdk.tar.gz
wget https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.tar.gz
tar -zxvf amazon-corretto-8-x64-linux-jdk.tar.gz
cd /var/lib/docker/volumes/soft_jenkins_home/_data && mkdir -p ./soft/maven
code settings.xml
- maven 构建
- 构建 -> 添加构建步骤 -> 调用顶层 maven 目标
clean install -Dmaven.test.skip=true -Pprivate -Djava.awt.headless=true
clean package -D maven.test.skip=true -P prod help:active-profiles
- send build artifacts over SSH (Transfers Set -> Exec command)
export app_version='1.0'
if [ -z $DOCKER_JENKINS_WORKSPACE ]; then
echo "环境变量 DOCKER_JENKINS_WORKSPACE:[$DOCKER_JENKINS_WORKSPACE] 缺失,需配置 DOCKER_JENKINS_WORKSPACE 环境变量(exit -1)"
exit -1
fi
cd $DOCKER_JENKINS_WORKSPACE/$JOB_NAME
tee Dockerfile <<-'EOF'
FROM openjdk:11-jre-slim
WORKDIR /workdir
ADD ./*-server/target/*.jar app.jar
ENV SPRING_PROFILES_ACTIVE=prod
ENV SERVER_PORT=8080
ENTRYPOINT java -jar -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE -Dserver.port=$SERVER_PORT app.jar
EXPOSE 8080
EOF
docker build -t $JOB_NAME:$app_version .
docker tag $JOB_NAME:$app_version registry.cn-zhangjiakou.aliyuncs.com/fa/$JOB_NAME:$app_version
docker push registry.cn-zhangjiakou.aliyuncs.com/fa/$JOB_NAME:$app_version
docker images | awk '{if($1=="<none>")print $3}' | xargs docker rmi &> /dev/null
tee $JOB_NAME.yml <<-'EOF'
version: '3.5'
services:
$JOB_NAME:
image: registry.cn-zhangjiakou.aliyuncs.com/fa/$JOB_NAME:${app_version}
environment:
TZ: "Asia/Shanghai"
SPRING_PROFILES_ACTIVE: "prod"
networks:
- middleware
deploy:
replicas: 1
update_config:
parallelism: 1
restart_policy:
condition: on-failure
networks:
middleware:
external: true
EOF
docker stack up -c $JOB_NAME.yml app --with-registry-auth