👷 添加CI/CD构建内容
This commit is contained in:
parent
69a9446353
commit
6a733d27ee
|
@ -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."
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
git checkout master
|
||||||
|
git merge dev
|
||||||
|
git push --all
|
||||||
|
git push --tags
|
||||||
|
git checkout dev
|
Loading…
Reference in New Issue