# win11_docker **Repository Path**: shisanqian/win11_docker ## Basic Information - **Project Name**: win11_docker - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-09-12 - **Last Updated**: 2026-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # win11_docker Windows 11 环境下的 Docker Compose 本地开发基础设施仓库,提供完整的微服务开发环境,涵盖数据库、消息队列、服务注册与配置、分布式事务、任务调度、链路追踪、PHP 开发环境及 AI 代理网关。 ## 快速开始 每个子目录是一个独立服务,进入对应目录启动即可: ```bash cd <服务目录> docker compose up -d # 启动 docker compose down # 停止 docker compose logs -f # 查看日志 ``` 如需构建自定义镜像(已提供 Dockerfile 的服务): ```bash cd hyperf-xdebug && docker build -t php-hyperf-debug:v1 . cd market && docker build -t php-hyperf-debug:v1 . cd openclaw && docker build -t dswl9527/openclaw:1.6 . ``` ## 服务总览 ### 核心应用 | 服务 | 端口 | 说明 | |------|------|------| | **market/** | 9111-9117 | Hyperf PHP 微服务平台,8 个后端服务(common/member/order/platform/portal/product/provider-backend + service-share) | | **openclaw/** | — | OpenClaw AI 代理网关(Node.js),支持阿里云百炼和飞书/Lark 集成 | | **copaw/** | 8088 | Copaw AI 代理工作区 | | **caddy/** | 9980, 9943 | API 网关,将外部请求路由到 Docker 容器内的微服务和 PHP 应用 | ### 基础设施 | 服务 | 端口 | 说明 | |------|------|------| | **nacos/** | 8848, 9848 | 服务注册与配置中心 v2.5.1(MySQL 持久化,开启认证) | | **apollo/** | 8080, 8070, 8090 | 配置中心 v2.4.0,含 SQL 初始化脚本 | | **dtm/** | 36789, 36790 | 分布式事务管理器 v1.19(HTTP + gRPC) | | **xxljob/** | 8086 | 任务调度 v3.2.0,含 SQL 初始化脚本 | | **zipkin3/** | 9411 | 分布式链路追踪(内存存储模式) | | **allinssl/** | 8888 | SSL 证书管理工具 | ### 数据存储 | 服务 | 端口 | 默认凭证 | |------|------|---------| | **mysql84/** | 3366 | root / mysql123456 | | **mysql57/** | 3367 | root / mysql123456 | | **redis74/** | 6699 | 自定义配置(非默认 6379) | | **postgresql/** | 5432 | postgres / postgres123456 | | **clickhouse/** | 8123, 9000 | password=123456,附带 ch-ui 管理界面 (3488) | | **rabbitmq3/** | 5672, 15672 | rabbitmq / rabbitmq123456 | | **kafka/** | — | 骨架配置,需补充完整方可使用 | ### PHP 开发环境 | 服务 | 端口 | 说明 | |------|------|------| | **hyperf-xdebug/** | 9501 | PHP 8.2 + Swoole 5.1 + Xdebug,连接主机 9003 端口 | | **swoole/** | — | PHP Swoole 5.1 运行时(空闲容器) | | **wm_fpm/** | 8015 | PHP-FPM + Nginx + Supervisor 完整栈,含 Opcache JIT | | **win_xdebug/** | — | VS Code Xdebug 配置参考(无 Docker 服务) | ### 隧道与代理 | 服务 | 说明 | |------|------| | **frp/** | frps(服务端)+ frpc(客户端),均使用 host 网络模式 | | **cloudflared/** | Cloudflare Tunnel,host 网络模式 | ### 工具容器 | 服务 | 端口 | 说明 | |------|------|------| | **alpine/** | — | 空闲容器,用于调试和开发 | | **ubuntu/** | — | 空闲容器,apt 源已切换阿里云镜像 | | **plantuml/** | 9080 | PlantUML 图表服务 | ## 架构说明 ### 网络拓扑 - 大多数服务使用独立的桥接网络,互不干扰 - nacos 和 dtm 共享 `microservice` 外部网络,需预先创建: ```bash docker network create microservice ``` - Caddy 在 Windows 主机上直接运行,通过 localhost 端口映射访问各 Docker 容器的后端服务 ### 内部 IP 地址 服务配置中引用以下固定内网 IP(非 Docker 网络地址): | IP 地址 | 用途 | |---------|------| | 10.3.15.139:3366 | MySQL 8.4 实例(apollo、xxljob、hyperf-xdebug 引用) | | 10.3.15.113:3366 | MySQL 实例(dtm、nacos 引用) | | 10.3.15.163 | market 服务的 `host.docker.internal` 映射 | | 10.3.3.3 | DNS 服务器 | | 10.3.15.68 | Caddy 绑定对外暴露服务的 IP | ### 空闲容器模式 多个服务使用 `tail -f /etc/passwd` 或 `tail -f /dev/null` 作为启动命令,保持容器运行但不启动实际应用。应用的启动命令已在 docker-compose.yml 中注释,开发者可手动取消注释启用。这样做的好处是可以先进入容器调试,需要时再启动应用。 ### Xdebug 配置 | 目录 | 客户端端口 | 容器内路径 | 说明 | |------|-----------|-----------|------| | hyperf-xdebug | 9003 | /data | 通过 `host.docker.internal` 连接主机 | | market | 9003 / 9016 | /webser/www | 默认 9003,`debug.sh` 可切换至 9016 | | win_xdebug | 9903 | D:\workspace\westmonth | 纯 VS Code 配置,无 Docker 容器 | ### 镜像源加速 所有 Dockerfile 均已配置国内镜像源: - Alpine apk → 清华镜像 (`mirrors.tuna.tsinghua.edu.cn`) - APT (Ubuntu) → 阿里云镜像 (`mirrors.aliyun.com`) - Composer → 腾讯镜像 (`mirrors.tencent.com`) - npm → cnpm + npmmirror - PyPI → 阿里云镜像 ### 私有 Registry `market/` 和 `wm_fpm/` 依赖私有 Harbor Registry `harbor.dev.szad.teehmoon.com` 的基础镜像,需有相应访问权限才能构建。 ## 部署前注意事项 以下服务的配置含占位符,部署前需替换为实际值: - **cloudflared** — tunnel token 需替换 `--token token` - **frp** — `frps.toml` 和 `frpc.toml` 中的 token 和服务器 IP 需替换 - **kafka** — 缺少完整的 KRaft 或 ZooKeeper 配置,需补充后方可正常使用 ## 通用约定 - 所有容器时区设置为 `Asia/Shanghai` - 日志驱动为 `json-file`,限制 2000k × 10 个文件 - 容器命名规则:`<服务名><版本号>`(如 `mysql84`、`nacos251`) - 除 Caddy 外,所有服务均在 Docker 容器内运行