diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..969a0a3b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,28 @@ +# Git and IDE +.git +.idea +*.iml + +# Node artifacts +**/node_modules +**/dist +**/.nuxt +**/.output + +# Maven build output (will be rebuilt in Docker) +**/target + +# Desktop / webchat (not needed for server or sites build) +mateclaw-desktop + +# Data and logs +data +*.log + +# Misc +.env +*.md +!docs/**/*.md +!matevip-sites/**/*.md +!mateclaw-plugin-api/** +!mateclaw-server/** diff --git a/docker-compose.yml b/docker-compose.yml index c61b9498..5849cfb9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -50,8 +50,8 @@ services: # MateClaw 后端服务 mateclaw-server: build: - context: ./mateclaw-server - dockerfile: Dockerfile + context: . + dockerfile: mateclaw-server/Dockerfile container_name: mateclaw-server restart: unless-stopped depends_on: diff --git a/mateclaw-server/Dockerfile b/mateclaw-server/Dockerfile index 9a390d77..2856f6e4 100644 --- a/mateclaw-server/Dockerfile +++ b/mateclaw-server/Dockerfile @@ -1,9 +1,17 @@ # 多阶段构建 FROM maven:3.9-eclipse-temurin-21 AS builder + +# 先构建并安装 plugin-api 到本地 Maven 缓存 +WORKDIR /plugin-api +COPY mateclaw-plugin-api/pom.xml ./pom.xml +COPY mateclaw-plugin-api/src ./src +RUN mvn install -DskipTests -q + +# 再构建 mateclaw-server WORKDIR /build -COPY pom.xml . +COPY mateclaw-server/pom.xml . RUN mvn dependency:go-offline -q -COPY src ./src +COPY mateclaw-server/src ./src RUN mvn package -DskipTests -q FROM eclipse-temurin:21-jre-alpine diff --git a/mateclaw-server/pom.xml b/mateclaw-server/pom.xml index 77c162e8..23f05608 100644 --- a/mateclaw-server/pom.xml +++ b/mateclaw-server/pom.xml @@ -6,7 +6,7 @@ vip.mate mateclaw-server - 1.1.0 + 1.1.137-SNAPSHOT jar MateClaw Server diff --git a/mateclaw-ui/package.json b/mateclaw-ui/package.json index 564ceb64..5dfc4140 100644 --- a/mateclaw-ui/package.json +++ b/mateclaw-ui/package.json @@ -1,6 +1,6 @@ { "name": "mateclaw-ui", - "version": "1.1.0", + "version": "1.1.137-SNAPSHOT", "private": true, "type": "module", "description": "MateClaw - Personal AI Assistant Web Console",