- 修改 llmx-core-database 服务名称为 llmx-database - 更新数据库容器的 volume 名称 -统一网络和 volume 的命名格式
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| stages:
 | ||
|   - build
 | ||
|   - deploy
 | ||
| 
 | ||
| variables:
 | ||
|   PROJECT_NAME: llmx
 | ||
|   COMPOSE_FILE: docker/docker-compose.test.yml
 | ||
|   SERVER_PASSWORD: $SERVER_PASSWORD
 | ||
|   DOCKER_REGISTRY_URL: $DOCKER_REGISTRY_URL
 | ||
|   SPRING_PROFILES_ACTIVE: test
 | ||
| 
 | ||
| before_script:
 | ||
|   - export GRADLE_USER_HOME=$CI_PROJECT_DIR/.gradle
 | ||
| 
 | ||
| build:
 | ||
|   stage: build
 | ||
|   environment:
 | ||
|     name: test
 | ||
|   rules:
 | ||
|     - if: '$CI_COMMIT_BRANCH == "test"'
 | ||
|   cache:
 | ||
|     key:
 | ||
|       files:
 | ||
|         - gradle/libs.versions.toml
 | ||
|         - "**/build.gradle.kts"
 | ||
|       prefix: $CI_JOB_NAME
 | ||
|     paths:
 | ||
|       - .gradle/caches/
 | ||
|       - .gradle/wrapper/
 | ||
|       - .gradle/kotlin-profile/
 | ||
|       - .kotlin/
 | ||
|     policy: pull-push
 | ||
|   script:
 | ||
|     - |
 | ||
|       echo "=== 🐳 检查 Docker 安装状态 ==="
 | ||
|       if ! command -v docker >/dev/null; then
 | ||
|         echo "❌ Docker 未安装,开始安装..."
 | ||
|         curl -fsSL https://get.docker.com | sh | tee docker-install.log
 | ||
|         echo "✅ Docker 安装完成"
 | ||
|       else
 | ||
|         echo "ℹ️ Docker 已安装: $(docker -v)"
 | ||
|         echo "ℹ️ Docker Compose 已安装: $(docker compose version)"
 | ||
|       fi
 | ||
| 
 | ||
|     - echo "🔧 授予 gradlew 执行权限..."
 | ||
|     - chmod +x gradlew
 | ||
| 
 | ||
|     - echo "🚀 开始构建 Docker 镜像..."
 | ||
|     - ./gradlew jib --stacktrace --build-cache --info -Dorg.gradle.caching=true -Dorg.gradle.jvmargs="-Xmx2g -Xms2g -XX:MaxMetaspaceSize=1g" | tee build.log
 | ||
| 
 | ||
|     - echo "📦 当前缓存目录:"
 | ||
|     - ls -la .gradle/
 | ||
| 
 | ||
|     - echo "📦 Gradle 缓存结构检查"
 | ||
|     - ls -la .gradle/caches/modules-2/files-2.1 || true
 | ||
|     - echo "📦 缓存文件数量:$(find .gradle/caches/modules-2/files-2.1 -type f | wc -l)"
 | ||
| 
 | ||
|     - echo "🛑 停止 Gradle 守护进程..."
 | ||
|     - ./gradlew --stop
 | ||
| 
 | ||
|     - echo "🔍 当前 Java 进程:"
 | ||
|     - ps aux | grep java || true
 | ||
| 
 | ||
|   tags:
 | ||
|     - docker
 | ||
|     - java
 | ||
| 
 | ||
| deploy:
 | ||
|   stage: deploy
 | ||
|   environment:
 | ||
|     name: test
 | ||
|   rules:
 | ||
|     - if: '$CI_COMMIT_BRANCH == "test"'
 | ||
|   script:
 | ||
|     - echo "🛠️ 准备部署环境..."
 | ||
|     - chmod +x ${COMPOSE_FILE} || true
 | ||
|     - echo "🐳 当前 Docker 状态:"
 | ||
|     - docker ps -a
 | ||
| 
 | ||
|     - echo "🧹 停止并清理旧容器(包括孤儿容器)..."
 | ||
|     - docker compose -p $PROJECT_NAME -f ${COMPOSE_FILE} down --remove-orphans
 | ||
| 
 | ||
|     - echo "📥 拉取最新镜像..."
 | ||
|     - docker compose -p $PROJECT_NAME -f ${COMPOSE_FILE} pull
 | ||
| 
 | ||
|     - echo "🚀 启动新服务..."
 | ||
|     - docker compose -p $PROJECT_NAME -f ${COMPOSE_FILE} up -d
 | ||
| 
 | ||
|     - echo "✅ 当前服务状态:"
 | ||
|     - docker compose -p $PROJECT_NAME -f ${COMPOSE_FILE} ps
 | ||
| 
 | ||
|     - echo "🧼 清理悬空镜像..."
 | ||
|     - docker image prune -f
 | ||
| 
 | ||
|   tags:
 | ||
|     - docker
 | ||
|     - java
 |