Skip to content

Feature: add Docker support - #116

Open
FjHe wants to merge 4 commits into
MaloneTalk:mainfrom
FjHe:docker_support
Open

Feature: add Docker support#116
FjHe wants to merge 4 commits into
MaloneTalk:mainfrom
FjHe:docker_support

Conversation

@FjHe

@FjHe FjHe commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

#63

  1. Docker 配置文件(docker/ 目录)
  • docker-compose.yml - 定义了三个服务的编排配置:
    • MySQL 数据库服务(包含健康检查、字符集配置)
    • 后端服务(Spring Boot 应用)
    • 前端服务(Vue + Nginx)
  1. 文档里添加了docker启动说明
    docs/getting-started.md

已测试过:

docker-compose down -v
[+] Running 5/5
 ✔ Container data-agent-frontend  Removed                                                                                                                                                                                      0.0s 
 ✔ Container data-agent-backend   Removed                                                                                                                                                                                      0.6s 
 ✔ Container data-agent-mysql     Removed                                                                                                                                                                                      1.5s 
 ✔ Volume data-agent-mysql        Removed                                                                                                                                                                                      0.0s 
 ✔ Network data-agent-network     Removed                                                                                                                                                                                      0.3s 
(base) PS D:\HKYProject\DataAgent-MaloneTalk\docker> docker-compose up -d --build
[+] Building 1.7s (35/35) FINISHED
 => [internal] load local bake definitions                                                                                                                                                                                     0.0s 
 => => reading from stdin 1.01kB                                                                                                                                                                                               0.0s
 => [backend internal] load build definition from Dockerfile                                                                                                                                                                   0.0s
 => => transferring dockerfile: 975B                                                                                                                                                                                           0.0s 
 => [frontend internal] load build definition from Dockerfile                                                                                                                                                                  0.0s 
 => => transferring dockerfile: 803B                                                                                                                                                                                           0.0s 
 => [frontend internal] load metadata for docker.io/library/node:20-alpine                                                                                                                                                     0.2s 
 => [frontend internal] load metadata for docker.io/library/nginx:alpine                                                                                                                                                       0.2s 
 => [backend internal] load metadata for docker.io/library/eclipse-temurin:17-jre-alpine                                                                                                                                       0.2s 
 => [backend internal] load metadata for docker.io/library/maven:3.9-eclipse-temurin-17                                                                                                                                        0.2s 
 => [backend internal] load .dockerignore                                                                                                                                                                                      0.0s
 => => transferring context: 709B                                                                                                                                                                                              0.0s 
 => [backend internal] load build context                                                                                                                                                                                      0.0s 
 => => transferring context: 27.19kB                                                                                                                                                                                           0.0s 
 => [backend builder 1/6] FROM docker.io/library/maven:3.9-eclipse-temurin-17@sha256:4015718012bbf1113ec6cfae2b950be328d90265ceb60f92b26c3ea7c4d14ee8                                                                          0.0s 
 => => resolve docker.io/library/maven:3.9-eclipse-temurin-17@sha256:4015718012bbf1113ec6cfae2b950be328d90265ceb60f92b26c3ea7c4d14ee8                                                                                          0.0s 
 => [backend stage-1 1/6] FROM docker.io/library/eclipse-temurin:17-jre-alpine@sha256:02320dd4ce20e243dfb915c686089cf9315c763084fafbb12d5c9993aee18b57                                                                         0.0s 
 => => resolve docker.io/library/eclipse-temurin:17-jre-alpine@sha256:02320dd4ce20e243dfb915c686089cf9315c763084fafbb12d5c9993aee18b57                                                                                         0.0s 
 => [frontend builder 1/6] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293                                                                                       0.0s 
 => => resolve docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293                                                                                                        0.0s 
 => [frontend stage-1 1/3] FROM docker.io/library/nginx:alpine@sha256:4a73073bd557c65b759505da037898b61f1be6cbcc3c2c3aeac22d2a470c1752                                                                                         0.0s 
 => => resolve docker.io/library/nginx:alpine@sha256:4a73073bd557c65b759505da037898b61f1be6cbcc3c2c3aeac22d2a470c1752                                                                                                          0.0s
 => [frontend internal] load build context                                                                                                                                                                                     0.9s 
 => => transferring context: 1.81MB                                                                                                                                                                                            0.8s 
 => CACHED [backend stage-1 2/6] WORKDIR /app                                                                                                                                                                                  0.0s 
 => CACHED [backend stage-1 3/6] RUN mkdir -p /app/skills                                                                                                                                                                      0.0s 
 => CACHED [backend stage-1 4/6] RUN addgroup -g 1001 appgroup &&     adduser -u 1001 -G appgroup -D appuser                                                                                                                   0.0s 
 => CACHED [backend builder 2/6] WORKDIR /app                                                                                                                                                                                  0.0s 
 => CACHED [backend builder 3/6] COPY data-agent-backend/pom.xml .                                                                                                                                                             0.0s 
 => CACHED [backend builder 4/6] RUN mvn dependency:go-offline -B                                                                                                                                                              0.0s 
 => CACHED [backend builder 5/6] COPY data-agent-backend/src ./src                                                                                                                                                             0.0s 
 => CACHED [backend builder 6/6] RUN mvn clean package -DskipTests -B                                                                                                                                                          0.0s 
 => CACHED [backend stage-1 5/6] COPY --from=builder /app/target/*.jar app.jar                                                                                                                                                 0.0s 
 => CACHED [backend stage-1 6/6] RUN mkdir -p /app/logs && chown -R appuser:appgroup /app                                                                                                                                      0.0s 
 => [backend] exporting to image                                                                                                                                                                                               0.2s 
 => => exporting layers                                                                                                                                                                                                        0.0s 
 => => exporting manifest sha256:33053230d8a68830c6ce862dfa476699d0cbd9aeacf8cf86454b542e344a5fac                                                                                                                              0.0s 
 => => exporting config sha256:2d481a7b0924872f9055dde07cff6b189fbeefe53cf557a3312db7fbaf96a038                                                                                                                                0.0s 
 => => exporting attestation manifest sha256:17092eacda3fc54f83628967584bd9f1a8e82363a56426eeda0a9edf6f784dfa                                                                                                                  0.0s 
 => => exporting manifest list sha256:6fe1f2d865a8623199f490068cae569dc56af606b6ce1864e92da20f93ae9ff3                                                                                                                         0.0s 
 => => naming to docker.io/library/docker-backend:latest                                                                                                                                                                       0.0s 
 => => unpacking to docker.io/library/docker-backend:latest                                                                                                                                                                    0.0s 
 => [backend] resolving provenance for metadata file                                                                                                                                                                           0.0s 
 => CACHED [frontend stage-1 2/3] COPY docker/frontend/nginx.conf /etc/nginx/nginx.conf                                                                                                                                        0.0s 
 => CACHED [frontend builder 2/6] WORKDIR /app                                                                                                                                                                                 0.0s 
 => CACHED [frontend builder 4/6] COPY data-agent-frontend/ .                                                                                                                                                                  0.0s 
 => CACHED [frontend builder 5/6] RUN pnpm install --frozen-lockfile                                                                                                                                                           0.0s 
 => CACHED [frontend builder 6/6] RUN pnpm vite build                                                                                                                                                                          0.0s 
 => CACHED [frontend stage-1 3/3] COPY --from=builder /app/dist /usr/share/nginx/html                                                                                                                                          0.0s 
 => [frontend] exporting to image                                                                                                                                                                                              0.1s 
 => => exporting attestation manifest sha256:7e9d1593131321ecfbc2856c4688ca53160c328688e380db7ab00c44b798c504                                                                                                                  0.0s 
 => => exporting manifest list sha256:c7a83c5d9ac6c9e3706361261834bacc94ac4593b508a64edfc211c54de1cabd                                                                                                                         0.0s 
 => => naming to docker.io/library/docker-frontend:latest                                                                                                                                                                      0.0s 
 => => unpacking to docker.io/library/docker-frontend:latest                                                                                                                                                                   0.0s 
 => [frontend] resolving provenance for metadata file                                                                                                                                                                          0.0s 
[+] Running 7/7
 ✔ docker-frontend                Built                                                                                                                                                                                        0.0s 
 ✔ docker-backend                 Built                                                                                                                                                                                        0.0s 
 ✔ Network data-agent-network     Created                                                                                                                                                                                      0.0s 
 ✔ Volume "data-agent-mysql"      Created                                                                                                                                                                                      0.0s 
 ✔ Container data-agent-mysql     Healthy                                                                                                                                                                                     11.0s 
 ✔ Container data-agent-backend   Healthy                                                                                                                                                                                     41.5s 
 ✔ Container data-agent-frontend  Started  

@github-actions

Copy link
Copy Markdown

Thank you for your contribution! We will review your request as soon as possible. Please review the code yourself using ponytail https://github.com/DietrichGebert/ponytail.

@lzq986

lzq986 commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

感谢贡献,稍后我们看下

Comment thread docker/backend/Dockerfile

# Health check
HEALTHCHECK --interval=30s --timeout=10s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:8080/actuator/health || exit 1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里有对启动的容器验证吗?

仓库里没有 actuator:pom.xml 无 spring-boot-starter-actuator,代码里也没有任何 /actuator/health 或自定义 /health 端点,/actuator/health 只会 404,wget --spider 对 404 返回非零 → 容器永远 unhealthy。

worker_connections 1024;
}

http {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1、nginx.conf 的 /api/ 反代没写 proxy_buffering off,默认缓冲会把流式输出攒起来、卡顿,甚至前端"假死";proxy_read_timeout 60s 还会把 >60s 无输出的长推理直接掐断

@lzq986

lzq986 commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

辛苦打包好镜像后继续测试下,直接访问容器的地址来测试功能是否正常

@FjHe

FjHe commented Aug 19, 2026

Copy link
Copy Markdown
Contributor Author

提交commit修复的内容如下:
1、health check 我还是引入了spring-boot-starter-actuator。
2、修改了流式输出情况下,nginx的几个配置
3、docker fatjar启动的情况下,agentscope-extensions-nacos-skill的依赖则必须引入了,会报缺失。
4、修改了一下描述。


之前验证了一下午感觉都好好的,这次测到这么多问题感觉自己失忆了。。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants