variables: #变量 #网关 MES_BACK_CONTAINER: "mowen-blog-admin-api" MES_BACK_IMAGE: "mowen-blog-admin-api" MES_BACK_PORT: 8080 MAVEN_OPTS: "-Djava.awt.headless=true -Dmaven.repo.local=/mydata/jun/back_project/.m2" #指定maven的存储目录 cache: paths: - /mydata/jun/back_project/.m2 stages: - build - deploy build-dev:jdk17: stage: build script: - echo "=============== 开始编译打包任务 ===============" - mvn clean package -DskipTests -P dev #服务 - mkdir -p /mydata/mowen-blog/back_project/app - cp Dockerfile /mydata/mowen-blog/back_project/app - cp mes-admin/target/mowen-admin-dev-1.0.0.jar /mydata/mowen-blog/back_project/app artifacts: paths: - build/ only: - dev #当有代码合到主干时触发这个job tags: - blog-dev image: moshangjunmowen/maven-jdk17:v3 build-test:jdk17: stage: build script: - echo "=============== 开始编译打包任务 ===============" - mvn clean package -Dmaven.test.skip=true -P test #服务 - mkdir -p /mydata/mowen-blog/back_project/app - cp Dockerfile /mydata/mowen-blog/back_project/app - cp mes-admin/target/mowen-admin-test-1.0.0.jar /mydata/mowen-blog/back_project/app artifacts: paths: - build/ only: - test #当有代码合到主干时触发这个job tags: - mes-test image: moshangjunmowen/maven-jdk17:v3 build-prod:jdk17: stage: build script: - echo "=============== 开始编译打包任务 ===============" - mvn clean package -Dmaven.test.skip=true -P prod #服务 - mkdir -p /mydata/mowen-blog/back_project/app - cp Dockerfile /mydata/mowen-blog/back_project/app - cp mes-admin/target/mowen-admin-prod-1.0.0.jar /mydata/mowen-blog/back_project/app artifacts: paths: - build/ only: - main #当有代码合到主干时触发这个job tags: - pioneer-mes-prod image: moshangjunmowen/maven-jdk17:v3 deploy-dev:jdk17: stage: deploy image: docker:29.4.3 #目的是为了在docker环境下的runner能执行docker命令 script: - echo "=============== 开始部署应用 ===============" - 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 build --build-arg JAR_FILE=mowen-admin-dev-1.0.0.jar -t $MES_BACK_IMAGE /mydata/mowen-blog/back_project/app - 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: - dev #当有代码合到主干时触发这个job tags: - dev deploy-test:jdk17: stage: deploy image: docker:29.4.3 #目的是为了在docker环境下的runner能执行docker命令 script: - echo "=============== 开始部署应用 ===============" - 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 build --build-arg JAR_FILE=mowen-admin-test-1.0.0.jar -t $MES_BACK_IMAGE /mydata/mowen-blog/back_project/app - 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: - test #当有代码合到主干时触发这个job tags: - mes-test deploy-prod:jdk17: stage: deploy image: docker:29.4.3 #目的是为了在docker环境下的runner能执行docker命令 script: #服务 - 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 build --build-arg JAR_FILE=mowen-admin-prod-1.0.0.jar -t $MES_BACK_IMAGE /mydata/mowen-blog/back_project/app - 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: - main #当有代码合到主干时触发这个job tags: - pioneer-mes-prod