- 系统管理 -> 系统配置 -> 全局属性 -> 环境变量 -> 新增键值对
- 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
clean package -D maven.test.skip=true -P prod -pl cn.facoder:mall-server -am
- 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 eclipse-temurin:11-jre-alpine
WORKDIR /workdir
ADD ./target/*.jar app.jar
ENV SPRING_PROFILES_ACTIVE=prod
ENV SERVER_PORT=8080
ENV JAVA_OPTS="-Xms512m -Xmx512m"
ENTRYPOINT java ${JAVA_OPTS} -Dloader.path="/www/java/lib" -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE -Dserver.port=$SERVER_PORT -jar 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 rmi registry.cn-zhangjiakou.aliyuncs.com/fa/$JOB_NAME:$app_version
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"
volumes:
- "/www/temp/java/lib:/www/java/lib"
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