From 6a733d27eed137f7e42dd2f8b0c59e726e7af75d Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Sun, 18 May 2025 22:29:58 +0800 Subject: [PATCH] =?UTF-8?q?:construction=5Fworker:=20=E6=B7=BB=E5=8A=A0CI/?= =?UTF-8?q?CD=E6=9E=84=E5=BB=BA=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mq-demo/.gitlab-ci.yml | 49 ++++++++++++++++++++++++++++++++++++++++++ mq-demo/Dockerfile | 36 +++++++++++++++++++++++++++++++ mq-demo/push.sh | 5 +++++ 3 files changed, 90 insertions(+) create mode 100644 mq-demo/.gitlab-ci.yml create mode 100644 mq-demo/Dockerfile create mode 100644 mq-demo/push.sh diff --git a/mq-demo/.gitlab-ci.yml b/mq-demo/.gitlab-ci.yml new file mode 100644 index 0000000..ade5a0d --- /dev/null +++ b/mq-demo/.gitlab-ci.yml @@ -0,0 +1,49 @@ +# 定义CI/CD流水线的阶段 +stages: + - build # 第一阶段:构建应用程序 + - build-docker # 第二阶段:构建Docker镜像 + - deploy # 第三阶段:部署应用程序 + +# 定义全局变量 +variables: + CONTAINER_NAME: "bunny-auth-server" # Docker容器名称 + DOCKER_TAG: "4.0.0" # Docker镜像标签版本 + +# 构建任务 +build-job: + stage: build # 指定此任务属于build阶段 + script: + # 打印编译开始信息 + - echo "Compiling the code..." + # 使用Maven编译Java项目,跳过测试 + - mvn clean package -DskipTests + # 打印编译完成信息 + - echo "Compile complete." + # 从Docker Hub拉取OpenJDK基础镜像 + - docker pull openjdk:24-ea-17-jdk-oraclelinux9 + # 打印拉取完成信息 + - echo "docker pull complete." + # 使用Dockerfile构建Docker镜像,并打上标签 + - docker build -f Dockerfile -t $CONTAINER_NAME:$DOCKER_TAG . + # 打印构建成功信息 + - echo "Application successfully deployed." + +# 部署任务 +deploy-job: + stage: deploy # 指定此任务属于deploy阶段 + environment: production # 指定部署环境为production + script: + # 打印部署开始信息 + - echo "Deploying application..." + # 停止正在运行的容器(如果存在),|| true确保命令失败不会中断脚本 + - docker stop $CONTAINER_NAME || true + # 删除容器(如果存在) + - docker rm $CONTAINER_NAME || true + # 运行新的Docker容器 + # -d: 后台运行 + # -p: 端口映射(7070和8000) + # --name: 容器名称 + # --restart always: 总是自动重启 + - docker run -d -p 7070:7070 -p 8000:8000 --name $CONTAINER_NAME --restart always $CONTAINER_NAME:$DOCKER_TAG + # 打印部署成功信息 + - echo "Application successfully deployed." \ No newline at end of file diff --git a/mq-demo/Dockerfile b/mq-demo/Dockerfile new file mode 100644 index 0000000..f686446 --- /dev/null +++ b/mq-demo/Dockerfile @@ -0,0 +1,36 @@ +FROM openjdk:24-ea-17-jdk-oraclelinux9 +LABEL maintainer="server" + +#系统编码 +ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 + +# 设置时区,构建镜像时执行的命令 +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime +RUN echo "Asia/Shanghai" > /etc/timezone + +# 设定工作目录 +WORKDIR /home/server + +# 复制jar包 +COPY target/*.jar /home/server/app.jar + +# 程序内部挂在目录 +VOLUME /usr/bin/docker +VOLUME ["/var/run/docker.sock"] +VOLUME /etc/docker/daemon.json +VOLUME ["/www/root/backup"] +VOLUME ["/www/root/server"] + +# 启动容器时的进程 +ENTRYPOINT ["java","-jar","/home/server/app.jar"] + +#暴露 8000 端口 +EXPOSE 8000 +EXPOSE 7070 + +# 生产环境 +# mvn clean package -Pprod -DskipTests + +# 测试环境 +# mvn clean package -Ptest -DskipTests + diff --git a/mq-demo/push.sh b/mq-demo/push.sh new file mode 100644 index 0000000..7b9a8ff --- /dev/null +++ b/mq-demo/push.sh @@ -0,0 +1,5 @@ +git checkout master +git merge dev +git push --all +git push --tags +git checkout dev