49 lines
1.8 KiB
YAML
49 lines
1.8 KiB
YAML
# 定义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." |