修改
This commit is contained in:
@@ -1,113 +1,124 @@
|
|||||||
variables: #变量
|
variables:
|
||||||
#网关
|
# 网关/服务配置(保持不变)
|
||||||
MES_BACK_CONTAINER: "mowen-blog-admin-api"
|
MES_BACK_CONTAINER: "mowen-blog-admin-api"
|
||||||
MES_BACK_IMAGE: "mowen-blog-admin-api"
|
MES_BACK_IMAGE: "mowen-blog-admin-api"
|
||||||
MES_BACK_PORT: 8080
|
MES_BACK_PORT: 8080
|
||||||
MAVEN_OPTS: "-Djava.awt.headless=true -Dmaven.repo.local=/mydata/jun/back_project/.m2" #指定maven的存储目录
|
|
||||||
|
# Maven 本地仓库改用项目目录下的 .m2/repository,避免宿主机权限问题
|
||||||
|
MAVEN_OPTS: "-Djava.awt.headless=true -Dmaven.repo.local=${CI_PROJECT_DIR}/.m2/repository"
|
||||||
|
|
||||||
|
# 全局缓存:缓存 Maven 本地仓库,加速后续构建
|
||||||
cache:
|
cache:
|
||||||
|
key: "${CI_COMMIT_REF_SLUG}-maven"
|
||||||
paths:
|
paths:
|
||||||
- /mydata/jun/back_project/.m2
|
- .m2/repository/
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
|
# ==================== 构建阶段 ====================
|
||||||
build-dev:jdk17:
|
build-dev:jdk17:
|
||||||
stage: build
|
stage: build
|
||||||
|
image: moshangjunmowen/maven-jdk17:v3
|
||||||
script:
|
script:
|
||||||
- echo "=============== 开始编译打包任务 ==============="
|
- echo "=============== 开始编译打包任务(dev) ==============="
|
||||||
- mvn clean package -DskipTests -P dev
|
- mvn clean package -DskipTests -P dev
|
||||||
#服务
|
# 将 Dockerfile 和 jar 收集到 build 目录,供 artifacts 传递
|
||||||
- mkdir -p /mydata/mowen-blog/back_project/app
|
- mkdir -p build
|
||||||
- cp Dockerfile /mydata/mowen-blog/back_project/app
|
- cp Dockerfile build/
|
||||||
- cp mes-admin/target/mowen-admin-dev-1.0.0.jar /mydata/mowen-blog/back_project/app
|
- cp mes-admin/target/mowen-admin-dev-1.0.0.jar build/
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- build/
|
- build/
|
||||||
|
expire_in: 1 day # 产物保留时间,按需调整
|
||||||
only:
|
only:
|
||||||
- dev #当有代码合到主干时触发这个job
|
- dev
|
||||||
tags:
|
tags:
|
||||||
- blog-dev
|
- blog-dev
|
||||||
image: moshangjunmowen/maven-jdk17:v3
|
|
||||||
|
|
||||||
build-test:jdk17:
|
build-test:jdk17:
|
||||||
stage: build
|
stage: build
|
||||||
|
image: moshangjunmowen/maven-jdk17:v3
|
||||||
script:
|
script:
|
||||||
- echo "=============== 开始编译打包任务 ==============="
|
- echo "=============== 开始编译打包任务(test) ==============="
|
||||||
- mvn clean package -Dmaven.test.skip=true -P test
|
- mvn clean package -Dmaven.test.skip=true -P test
|
||||||
#服务
|
- mkdir -p build
|
||||||
- mkdir -p /mydata/mowen-blog/back_project/app
|
- cp Dockerfile build/
|
||||||
- cp Dockerfile /mydata/mowen-blog/back_project/app
|
- cp mes-admin/target/mowen-admin-test-1.0.0.jar build/
|
||||||
- cp mes-admin/target/mowen-admin-test-1.0.0.jar /mydata/mowen-blog/back_project/app
|
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- build/
|
- build/
|
||||||
|
expire_in: 1 day
|
||||||
only:
|
only:
|
||||||
- test #当有代码合到主干时触发这个job
|
- test
|
||||||
tags:
|
tags:
|
||||||
- mes-test
|
- mes-test
|
||||||
image: moshangjunmowen/maven-jdk17:v3
|
|
||||||
|
|
||||||
build-prod:jdk17:
|
build-prod:jdk17:
|
||||||
stage: build
|
stage: build
|
||||||
|
image: moshangjunmowen/maven-jdk17:v3
|
||||||
script:
|
script:
|
||||||
- echo "=============== 开始编译打包任务 ==============="
|
- echo "=============== 开始编译打包任务(prod) ==============="
|
||||||
- mvn clean package -Dmaven.test.skip=true -P prod
|
- mvn clean package -Dmaven.test.skip=true -P prod
|
||||||
#服务
|
- mkdir -p build
|
||||||
- mkdir -p /mydata/mowen-blog/back_project/app
|
- cp Dockerfile build/
|
||||||
- cp Dockerfile /mydata/mowen-blog/back_project/app
|
- cp mes-admin/target/mowen-admin-prod-1.0.0.jar build/
|
||||||
- cp mes-admin/target/mowen-admin-prod-1.0.0.jar /mydata/mowen-blog/back_project/app
|
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- build/
|
- build/
|
||||||
|
expire_in: 1 day
|
||||||
only:
|
only:
|
||||||
- main #当有代码合到主干时触发这个job
|
- main
|
||||||
tags:
|
tags:
|
||||||
- pioneer-mes-prod
|
- pioneer-mes-prod
|
||||||
image: moshangjunmowen/maven-jdk17:v3
|
|
||||||
|
|
||||||
|
# ==================== 部署阶段 ====================
|
||||||
deploy-dev:jdk17:
|
deploy-dev:jdk17:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
image: docker:29.4.3 #目的是为了在docker环境下的runner能执行docker命令
|
image: docker:29.4.3 # 使用 docker 镜像执行部署命令
|
||||||
|
needs: ["build-dev:jdk17"] # 明确依赖构建产物,确保顺序
|
||||||
script:
|
script:
|
||||||
- echo "=============== 开始部署应用 ==============="
|
- echo "=============== 开始部署应用(dev) ==============="
|
||||||
|
- cd build # 进入 artifacts 传递过来的目录
|
||||||
- docker ps -a | grep $MES_BACK_CONTAINER && docker stop $MES_BACK_CONTAINER && docker rm $MES_BACK_CONTAINER || echo "not exist"
|
- docker ps -a | grep $MES_BACK_CONTAINER && docker stop $MES_BACK_CONTAINER && docker rm $MES_BACK_CONTAINER || echo "not exist"
|
||||||
- docker images | grep $MES_BACK_IMAGE && docker rmi -f $MES_BACK_IMAGE || echo "not exist"
|
- docker images | grep $MES_BACK_IMAGE && docker rmi -f $MES_BACK_IMAGE || echo "not exist"
|
||||||
- docker build --build-arg JAR_FILE=mowen-admin-dev-1.0.0.jar -t $MES_BACK_IMAGE /mydata/mowen-blog/back_project/app
|
# 构建上下文为当前目录(build/),直接使用 Dockerfile 和 jar
|
||||||
|
- docker build --build-arg JAR_FILE=mowen-admin-dev-1.0.0.jar -t $MES_BACK_IMAGE .
|
||||||
- docker run -d --restart=always --network=host --log-opt max-size=50m --log-opt max-file=3 --name $MES_BACK_CONTAINER $MES_BACK_IMAGE
|
- docker run -d --restart=always --network=host --log-opt max-size=50m --log-opt max-file=3 --name $MES_BACK_CONTAINER $MES_BACK_IMAGE
|
||||||
only:
|
only:
|
||||||
- dev #当有代码合到主干时触发这个job
|
- dev
|
||||||
tags:
|
tags:
|
||||||
- dev
|
- dev
|
||||||
|
|
||||||
|
|
||||||
deploy-test:jdk17:
|
deploy-test:jdk17:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
image: docker:29.4.3 #目的是为了在docker环境下的runner能执行docker命令
|
image: docker:29.4.3
|
||||||
|
needs: ["build-test:jdk17"]
|
||||||
script:
|
script:
|
||||||
- echo "=============== 开始部署应用 ==============="
|
- echo "=============== 开始部署应用(test) ==============="
|
||||||
|
- cd build
|
||||||
- docker ps -a | grep $MES_BACK_CONTAINER && docker stop $MES_BACK_CONTAINER && docker rm $MES_BACK_CONTAINER || echo "not exist"
|
- docker ps -a | grep $MES_BACK_CONTAINER && docker stop $MES_BACK_CONTAINER && docker rm $MES_BACK_CONTAINER || echo "not exist"
|
||||||
- docker images | grep $MES_BACK_IMAGE && docker rmi -f $MES_BACK_IMAGE || echo "not exist"
|
- docker images | grep $MES_BACK_IMAGE && docker rmi -f $MES_BACK_IMAGE || echo "not exist"
|
||||||
- docker build --build-arg JAR_FILE=mowen-admin-test-1.0.0.jar -t $MES_BACK_IMAGE /mydata/mowen-blog/back_project/app
|
- docker build --build-arg JAR_FILE=mowen-admin-test-1.0.0.jar -t $MES_BACK_IMAGE .
|
||||||
- docker run -d --restart=always --network=host --log-opt max-size=50m --log-opt max-file=3 --name $MES_BACK_CONTAINER $MES_BACK_IMAGE
|
- docker run -d --restart=always --network=host --log-opt max-size=50m --log-opt max-file=3 --name $MES_BACK_CONTAINER $MES_BACK_IMAGE
|
||||||
only:
|
only:
|
||||||
- test #当有代码合到主干时触发这个job
|
- test
|
||||||
tags:
|
tags:
|
||||||
- mes-test
|
- mes-test
|
||||||
|
|
||||||
deploy-prod:jdk17:
|
deploy-prod:jdk17:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
image: docker:29.4.3 #目的是为了在docker环境下的runner能执行docker命令
|
image: docker:29.4.3
|
||||||
|
needs: ["build-prod:jdk17"]
|
||||||
script:
|
script:
|
||||||
#服务
|
- echo "=============== 开始部署应用(prod) ==============="
|
||||||
|
- cd build
|
||||||
- docker ps -a | grep $MES_BACK_CONTAINER && docker stop $MES_BACK_CONTAINER && docker rm $MES_BACK_CONTAINER || echo "not exist"
|
- docker ps -a | grep $MES_BACK_CONTAINER && docker stop $MES_BACK_CONTAINER && docker rm $MES_BACK_CONTAINER || echo "not exist"
|
||||||
- docker images | grep $MES_BACK_IMAGE && docker rmi -f $MES_BACK_IMAGE || echo "not exist"
|
- docker images | grep $MES_BACK_IMAGE && docker rmi -f $MES_BACK_IMAGE || echo "not exist"
|
||||||
- docker build --build-arg JAR_FILE=mowen-admin-prod-1.0.0.jar -t $MES_BACK_IMAGE /mydata/mowen-blog/back_project/app
|
- docker build --build-arg JAR_FILE=mowen-admin-prod-1.0.0.jar -t $MES_BACK_IMAGE .
|
||||||
- docker run -d --restart=always --network=host --log-opt max-size=50m --log-opt max-file=5 --name $MES_BACK_CONTAINER $MES_BACK_IMAGE
|
- docker run -d --restart=always --network=host --log-opt max-size=50m --log-opt max-file=5 --name $MES_BACK_CONTAINER $MES_BACK_IMAGE
|
||||||
only:
|
only:
|
||||||
- main #当有代码合到主干时触发这个job
|
- main
|
||||||
tags:
|
tags:
|
||||||
- pioneer-mes-prod
|
- pioneer-mes-prod
|
||||||
Reference in New Issue
Block a user