1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| # 第四版(swarm+私服) # docker images | awk '{if($1=="$JOB_NAME") print $3}' | xargs docker rmi
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
# 编辑Dockerfile文件 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
# 编辑stack yml文件 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
|