👷 添加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