文档中心开发者技术手册10 大微服务全栈 Docker 生产级部署实战手册

🐳 Docker Compose 生产级部署交付全指南

循序渐进实战指引:如何在一台独立 VPS 云服务器上以最高级别的安全性、高可用性与系统健壮度,成功跑通 Loomix 架构下全部 10 项微服务组件。

1. 服务器基础设施基准要求 (Prerequisites)

在启动安装流程前,请备妥一台运行 Ubuntu 22.04 LTS 或 24.04 LTS 的海外独立 VPS 服务器:

  • 运行内存 (RAM): 至少 4GB 物理内存并挂载至少 4GB 虚拟内存 (Swap)(推荐 8GB RAM 以获取极致镜像构建效率)。
  • 计算核心 (CPU): 至少 2 核 vCPU(推荐 4 核 vCPU 加速 Docker 镜像并行分层编译)。

Docker 守护进程与套接字权限

确保系统已安装 Docker 与 Docker Compose 插件,并将当前操作非 root 用户加入 docker 用户组中。

Docker 守护进程与套接字权限
bash
sudo usermod -aG docker $USER
newgrp docker # or log out and SSH back in
docker ps # should work without sudo

2. 将工程源码传输部署至远程服务器

您可以通过以下两种成熟的标准工程手段将项目源码部署至您的目标服务器:

方案一:通过 Git 仓库直接克隆部署(官方强烈推荐)

时刻保持环境变量配置安全

Git 克隆标准命令:
bash
git clone https://github.com/<YOUR_GITHUB_USERNAME>/<YOUR_REPOSITORY_NAME>.git
cd <YOUR_REPOSITORY_NAME>

基于 SSH Deploy Keys 克隆私有组织仓库

  • 1. 在服务器上生成专用安全密钥对:ssh-keygen -t ed25519
  • 2. 打印并复制您的公钥文本:cat ~/.ssh/id_ed25519.pub
  • 3. 登录 GitHub 仓库主页,在 Deploy Keys 中添加该公钥并赋予读取权限。
  • 4. 直接在服务器终端通过 SSH 协议快速拉取私有代码库。
基于 SSH 协议的克隆命令:
bash
git clone git@github.com:<YOUR_GITHUB_USERNAME>/<YOUR_REPOSITORY_NAME>.git
cd <YOUR_REPOSITORY_NAME>

通过个人访问令牌 (PAT) 进行鉴权拉取

基于 PAT 令牌的克隆命令:
bash
git clone https://<YOUR_GITHUB_USERNAME>:<PERSONAL_ACCESS_TOKEN>@github.com/<YOUR_GITHUB_USERNAME>/<YOUR_REPOSITORY_NAME>.git
cd <YOUR_REPOSITORY_NAME>

方案二:上传本地压缩归档包 (ZIP / Tarball)

若您在本地下载了完整的项目源代码归档包,可通过 scp 或 rsync 极速上传至服务器:

基于 rsync / SCP 的上传命令:
bash
rsync -avz --exclude 'node_modules' --exclude '.git' --exclude '.next' ./ user@your_vps_ip:/root/next-strapi-medusa

3. 极速全自动安装向导 (Quick Wizard)

为免除繁重的手工配置之苦,我们精心编写了 server-setup.sh 自动化脚手架:自动划定虚拟内存、严密审计端口占用并分步部署拉起全套容器:

一键拉起安装向导的终端命令:
bash
chmod +x server-setup.sh
bash server-setup.sh
运维老手锦囊:
向导会自动审查服务器当前资源基线,随机生成符合工业级强度的安全凭据,并全自动注入到您的 .env 配置文件中。

4. 选定最适合您的部署架构方案 (Deployment Profiles)

系统内置了 3 种针对不同业务阶段与流量规模的标准拓扑架构配置:

我是否必须准备独立的正式域名?
是的。对于方案 B 与方案 C,强烈建议绑定正式主域名,以便 Caddy 网关通过 Let's Encrypt 为各微服务全自动申领合规免费的泛域名 SSL 证书。
95% 出海商家的首选方案

在一台独立 VPS 上完整运行全部 10 项微服务,通过规范的二级子域名路由流量,由 Caddy 提供全自动 SSL 加密。

方案 B 极速上手四步法:

  • 1. 将您的主域名及其全部泛解析二级子域名 A 记录解析至 VPS 服务器公网 IP。
  • 2. 运行 server-setup.sh 安装向导并选择 Profile B。
  • 3. 键入您所拥有的顶级主域名(例如 yourdomain.com)。
  • 4. Caddy 反向代理网关自动向 ACME 机构申请并安装全部子域名的 SSL 证书。
  • 5. 全部业务端点与控制台均在 HTTPS 加密下立即可用。
.env 配置代码片段 (方案 B)
env
# Profile B: VM / LAN HTTPS (.local hostnames) - Recommended ★
STOREFRONT_PUBLIC_URL=https://store.local
MEDUSA_BACKEND_PUBLIC_URL=https://api.local
STRAPI_PUBLIC_URL=https://admin.local
MEILISEARCH_PUBLIC_URL=https://search.local
MINIO_PUBLIC_URL=https://api.local/minio/mystore
GOOGLE_CALLBACK_URL=https://store.local/ir/account/auth/callback
STOREFRONT_URL=http://storefront:8000
MEDUSA_NODE_ENV=production
MEDUSA_ALLOW_HTTP_COOKIES=false
CLOUDFLARE_TUNNEL_TOKEN=
方案 B 生产访问入口:
• 独立站前台:https://yourdomain.com
• Medusa 电商中台:https://api.yourdomain.com/app
• Strapi 内容后台:https://admin.yourdomain.com/admin
• Umami 流量统计:https://analytics.yourdomain.com
• OpenObserve 监控:https://monitor.yourdomain.com

Cloudflare 边缘安全加固与避坑全指南

在将域名 NS 权威解析委托给 Cloudflare 之前:

为彻底杜绝常见的无限重定向死循环 (Redirect Loops),请务必将 Cloudflare 的 SSL/TLS 加密模式明确设定为 Full (Strict)

2. 服务拉起后(部署后安全加固设置):

SSL/TLS 加密模式:必须设为 Full (Strict)
Edge 边缘证书:开启 Always Use HTTPSAutomatic HTTPS Rewrites,并将最低 TLS 版本设为 TLS 1.2(或 1.3)。
DNS 代理:将所有 DNS 记录切换为橙色云朵图标(Proxied),享受 CDN 边缘加速并防御源站 DDoS 攻击。
安全 / WAF:启用 Bot Fight Mode 防爬虫机制。
网络设置:确保已启用 WebSocketsgRPC
缓存策略:在 Caching > Configuration 中,确保 Browser Cache TTL 设为 Respect Existing Headers,以免干扰购物车与库存的即时变动更新。

HTTP Basic Auth 与 Caddy 边缘访问加固:

Strapi 管理后台 (admin.yourdomain.com/admin*/):强制接入 HTTP Basic Auth,彻底阻断密码字典穷举爆破。公共开放的 API 接口 (/api/*) 与多媒体静态资源 (/uploads/*) 保持免密透传,确保 Storefront 与 Medusa 调取数据不受 401 拦截。
OpenObserve 监控看板 (monitor.yourdomain.com):叠加 HTTP Basic Auth 防护,形成与内部用户认证的双保险。

使用如下指令为 .env 中的 BASIC_AUTH_HASH 生成安全的 bcrypt 加密字串:

为 Caddy 快速生成 Bcrypt 密码散列散列值
bash
docker run --rm caddy:latest caddy hash-password --plaintext "your_secret_password"

不同部署架构方案下的微服务端口路由对照矩阵

微服务模块方案 A (本地开发)方案 B (单机 VPS)方案 C (企业集群)
Next.js 独立站前台http://<VM_IP>:8000https://store.localhttps://yourdomain.com
MedusaJS 核心后端http://<VM_IP>:9000/apphttps://api.local/apphttps://api.yourdomain.com/app
Strapi CMS 内容系统http://<VM_IP>:1337/adminhttps://admin.local/adminhttps://admin.yourdomain.com/admin
Umami 流量数据中台http://<VM_IP>:3005https://analytics.localhttps://analytics.yourdomain.com
OpenObserve 实时监控http://<VM_IP>:5080https://monitor.localhttps://monitor.yourdomain.com
极速搜索引擎 (Meilisearch)127.0.0.1:7700https://search.localhttps://search.yourdomain.com

.env 中各项公网公开 URL 的具体含义:

  • STOREFRONT_PUBLIC_URL:Next.js 商城前台服务(Docker 内部映射为 8000 端口,或线上绑定独立域名)。
  • MEDUSA_BACKEND_PUBLIC_URL:Medusa API 商业网关与管理控制台 (/app)。
  • STRAPI_PUBLIC_URL:Strapi CMS 后台管理界面 (/admin);草稿预览链接自动指向 STOREFRONT_PUBLIC_URL。
  • MEILISEARCH_PUBLIC_URL:客户端即时拼写搜索公开接口(方案 A:http://127.0.0.1:7700,方案 B:https://search.local,方案 C:https://search.yourdomain.com)。
  • MINIO_PUBLIC_URL:多媒体静态资源存储前缀(方案 A:http://IP:9001/mystore,方案 B/C:https://api.*/minio/mystore)。
  • STOREFRONT_URL:仅用于 Docker 内部网络(http://storefront:8000),专供 Medusa -> Storefront 发送按需缓存重构通知。

在启动第 1 阶段前【必须】配置项:

随机安全秘钥 (openssl rand -hex 32):POSTGRES_PASSWORD、MEILI_MASTER_KEY、所有 STRAPI_* 密钥、MEDUSA_JWT_SECRET、MEDUSA_COOKIE_SECRET、REVALIDATE_SECRET、UMAMI_APP_SECRET。
超级管理员凭证:MEDUSA_ADMIN_EMAIL、MEDUSA_ADMIN_PASSWORD、MINIO_ROOT_USER、MINIO_ROOT_PASSWORD、UMAMI_USERNAME、UMAMI_PASSWORD。
公开访问域名:按需选定方案 A、方案 B 或方案 C 对应的地址配置。

在执行对应阶段之前请保持留空:

• 第 4 阶段:STRAPI_API_TOKEN_FOR_MEDUSA, STRAPI_API_TOKEN_FOR_FRONT
• 第 6 阶段:MEDUSA_PUBLISHABLE_KEY
• 第 7 阶段:MEILI_SEARCH_KEY
• 第 8 阶段:UMAMI_WEBSITE_ID

Medusa 后台生产环境刚性规则:在 Docker 中始终锁定 MEDUSA_NODE_ENV=production。切勿指定为 development,因为后台面板预构建针对生产环境优化,开发模式会导致页面白屏崩溃。

5. 基于 GitHub Actions CI/CD 实现自动化持续交付

工程源码中完整预置了生产级 CI/CD 流水线:每次向 GitHub 提交代码,自动触发容器镜像构建并实现无感知热更新:

  1. 将服务器公网 IP 与自动化运维 SSH 私钥录入 GitHub 仓库的 Repository Secrets 安全保管区。
  2. 每次向主分支 (main) 推送变更,GitHub Actions 自动化流水线会即刻完成 Next.js 与 Medusa 容器的轻量化打包优化。
  3. 流水线向目标服务器安全握手并下发热升级指令,容器平滑切换实现真正的零宕机无感更新 (Zero-Downtime)。
  4. 4. (私有仓库可选) 生成具备 repoworkflowread:packages 权限的 GitHub Personal Access Token (Classic),并在 VPS 终端登录 GitHub Container Registry:
在 VPS 上登录 Docker 容器镜像仓库
bash
echo "<YOUR_PAT>" | docker login ghcr.io -u <YOUR_GITHUB_USERNAME> --password-stdin

全自动化部署拆解:标准 10 大推进阶段 (Phases 1-10)

推进阶段激活的微服务容器方案 A方案 B / C(本地局域网与生产外网环境)
阶段 1:数据库集群与基础设施层 (Postgres, Redis, MinIO, Meilisearch)
阶段 2:Caddy 反向代理网关与自动 SSL(方案 B 需配置 hosts 映射)⏭ 跳过(方案 A 环境无需执行)✅ 紧随第 1 阶段完成后,在拉起 Strapi 之前执行
阶段 3:Strapi CMS 内容管理中台(从 GHCR 拉取预构建镜像)
阶段 4:提取 Strapi API Tokens -> 回填存入 .env
阶段 5:Medusa 2.0 商业核心引擎(从 GHCR 拉取预构建镜像)
阶段 6:提取 Medusa 公开访问秘钥 -> 回填存入 .env
阶段 7:提取 Meilisearch 只读搜索密钥 -> 回填存入 .env
阶段 8:Umami 隐私行为分析系统(在前台启动之前部署)选填项
阶段 9:Next.js 商城前端前台(通过 GitHub Actions 自动编译构建与上线)
阶段 10:全栈可观测性与日志审计套件 (OpenObserve, Vector, cAdvisor)选填项官方推荐

阶段一:启动持久化底层数据库 (PostgreSQL & Redis)

初始化 PostgreSQL 独立容器实例,分别为 Medusa、Strapi 与 Umami 开辟隔离数据模式,并启动 Redis 分布式高速缓存。

阶段一执行脚本:
bash
docker compose up -d postgres redis meilisearch minio minio-setup

等待直到全部微服务均处于 healthy 健康状态:docker compose ps

阶段二:启动 Caddy 智能反向代理网关与 SSL 证书申领

拉起 Caddy 网关,自动与 ACME 证书颁发机构握手,为全站各个二级子域名全自动配置生产级 TLS/SSL 加密套据。

阶段二执行脚本:
bash
docker compose up -d caddy
docker compose logs -f caddy

针对方案 B 在 Windows 宿主机配置 hosts 本地解析:

以管理员身份打开 C:\Windows\System32\drivers\etc\hosts 并追加如下解析映射:
192.168.1.103 store.local api.local admin.local analytics.local monitor.local
(将 192.168.1.103 替换为您实际虚拟机的内网 IP。请勿添加 Meilisearch,其必须维持内网严格隔离)。

阶段三:启动 Strapi CMS v5 内容管理系统

自动拉取生产级 Strapi 镜像,建立与 Postgres 数据库池的持久握手,健康巡检守护直至 1337 业务端口进入就绪态。

阶段三执行脚本:
bash
docker compose pull strapi
docker compose up -d strapi
docker compose logs -f strapi

等待服务启动并在 1337 端口开始监听(首次冷启动耗时约 1–3 分钟)。在浏览器打开 Strapi 后台(方案 B:https://admin.local/admin,方案 A:http://<VM_IP>:1337/admin)并注册创建超级管理员账户。

阶段四:提取 Strapi 服务间通信鉴权 Token 并持久化至 .env

全自动调用后台脚本生成供 Next.js 独立站调取前台布局区块专用的 Full Access 安全令牌,并回写写入生产环境配置。

  1. 执行 strapi-token-init.js 运维审计脚本提取管理端鉴权标识。
  2. 将签发的 STRAPI_API_TOKEN 环境变量精准同步注入到生产配置文件中。
  3. 3. 针对前台商城接入 (STRAPI_API_TOKEN_FOR_FRONT):点击选择 Read-Only 只读 Token,点击 Regenerate 并将复制的明文值写入 .envSTRAPI_API_TOKEN_FOR_FRONT 变量中。

阶段五:初始化 MedusaJS v2 核心电商中台引擎

拉起 Medusa 核心业务容器,全自动执行全量数据模式迁移 (Migrations) 并创建第一位超级系统管理员席位。

阶段五执行脚本:
bash
docker compose pull medusa
docker compose up -d medusa
docker compose logs -f medusa

首次初始化自动流转:db:migrate 执行数据库自动化迁移(耗时约 2–5 分钟)-> 创建超级管理员 -> 9000 端口服务就绪。访问 Medusa Admin 后台 https://api.local/app(方案 B)或 http://<VM_IP>:9000/app(方案 A),使用预置的 MEDUSA_ADMIN_EMAILMEDUSA_ADMIN_PASSWORD 完成登录。

阶段六:绑定销售渠道并生成可公开访问的 API 密钥

为前台独立站签发专属的 Publishable API Key,并将其与默认跨境销售渠道建立深度双向映射关系。

  1. 自动化创建拥有完全授权资质的超级管理员身份主体。
  2. 将生成的凭证绑定至 NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY 生产变量中。
  3. 3. 【极其重要】:打开新建的公开密钥 > 进入 Sales Channels 销售渠道选项卡 > 勾选绑定 Default Sales Channel。若遗漏此步骤,前台将无法正常查询展示上架商品。

阶段七:挂载 Meilisearch 毫秒级智能搜索引擎

启动 Meilisearch 搜索引擎容器,配置商品分词策略,实现亚毫秒级的智能联想搜索与高容错纠错体验。

阶段七执行脚本:
bash
curl -H "Authorization: Bearer <MEILI_MASTER_KEY>" http://127.0.0.1:7700/keys

复制提取出来的 Default Search API Key,填入 .env 中的 MEILI_SEARCH_KEY 变量(自动化交互式向导可全自动提取)。

阶段八:初始化 Umami 隐私保护型流量统计平台

拉起完全符合国际 GDPR 规范、不依赖第三方 Cookie 的独立流量统计中台 Umami,并生成独立站前台埋点识别码。

阶段八执行脚本:
bash
docker compose up -d umami

访问 Umami 统计面板(方案 B:https://analytics.local,方案 A:http://<VM_IP>:3005)。登录管理员(admin / umami),依次进入 Settings > Websites > Add website,将生成得到的 Website ID 写入 .envUMAMI_WEBSITE_ID

阶段九:部署上线 Next.js 16 现代独立站前台

构建 Next.js 生产镜像,与各微服务建立链路握手,完成全站静态页面预渲染并将其无缝接入 Caddy 反向代理网络。

1. 生产环境构建参数与 API 链路注入:

在 Docker 镜像分层编译阶段将 Medusa 与 Strapi 的端点地址固化注入。

1. STOREFRONT_BUILD_ARGS(前端构建环境变量集合)

包含 Next.js 编译所需的环境参数。直接复制上述模板,并替换填入前面各阶段生成提取的专属密钥。

镜像构建期注入参数 (Build Args):
env
MEDUSA_BACKEND_URL=http://medusa:9000
NEXT_PUBLIC_MEDUSA_BACKEND_URL=https://api.yourdomain.com
NEXT_PUBLIC_STRAPI_URL=https://admin.yourdomain.com
NEXT_PUBLIC_BASE_URL=https://store.yourdomain.com
NEXT_PUBLIC_MEILISEARCH_HOST=https://search.yourdomain.com
NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY=pk_...
NEXT_PUBLIC_MEILISEARCH_SEARCH_KEY=...
NEXT_PUBLIC_UMAMI_WEBSITE_ID=...
NEXT_PUBLIC_DEFAULT_REGION=US
DEFAULT_LOCALE=en-US
NEXT_PUBLIC_MEILISEARCH_INDEX_NAME=products
NEXT_PUBLIC_ENABLE_IRAN_FEATURES=false

2. REGISTRY_URL

组件注册中心源地址。默认推荐采用官方公共的 Loomix Blocks 注册中心:
https://raw.githubusercontent.com/landa33/loom-blocks-registry/main/src/modules

3. GITHUB_PAT (可选)

具备 repoworkflowread:packages 范围的 GitHub Personal Access Token (Classic)。用于私有 GHCR 拉取、触发 CI/CD 及调用私有组件源。

4. DEPLOY_PATH

Linux VPS 宿主机上项目的绝对物理路径(例如 /root/loomix-commerce)。Self-Hosted Runner 必须据此定位并执行 Docker Compose 调度。

2. 采用极轻量化的 Next.js Standalone 输出模式:

借助 Next.js 生产独立打包特性,将最终交付的容器体积极致压缩至 150MB 以下。

3. 容器网络互联与可用性健康探针:

严格监听 8000 宿主通信端口,确认页面可访问后接入 Caddy 网关路由池。

4. 正式启动对外服务的前台容器:

启动前台容器指令:
bash
docker compose pull storefront
docker compose up -d storefront

阶段十:挂载 Vector & OpenObserve 工业级全链路监控

启动分布式日志采集端 Vector 与监控大盘 OpenObserve,全景追踪系统各容器的 CPU、内存负载与异常日志流。

阶段十执行脚本:
bash
docker compose up -d openobserve vector cadvisor docker-stats-exporter

OpenObserve 集中式控制台界面:

在浏览器访问 https://monitor.yourdomain.com(方案 C)、https://monitor.local(方案 B)或 http://<VM_IP>:5080(方案 A),使用 OpenObserve root 管理凭证登录。

集中式日志与指标遥测流列表:

docker_logs:全容器统一格式化日志流,支持全文字符串快速匹配与跨微服务异常链路追踪。

caddy_access:实时 HTTP 入站流量审计、来源真实 IP、响应状态码(2xx/4xx/5xx)以及 Vector 从 Caddy JSON 日志中直接抓取的请求耗时。

docker_stats:基于 cAdvisor 采集的每个容器的实时内存使用率、CPU 占用百分比及网络 I/O 吞吐。

host_metrics:VPS 物理宿主机层级的整机 CPU 负荷、RAM 内存消耗及物理磁盘读写状态。

Telegram 实时故障报警机器人配置:

在 OpenObserve 管理后台中,进入 Reliability > Destinations 绑定您的 Telegram Bot Webhook(https://api.telegram.org/bot<TOKEN>/sendMessage),然后在 Reliability > Alerts 中设立预警规则,遭遇 500 异常时秒级推送警报。

6. Medusa 与 Strapi 之间的初始业务数据双向同步

全自动同步作业:读取 Medusa 中的商品矩阵与分类体系,并在 Strapi 中全自动构建对应的首页呈现区块结构。

触发全自动初始化数据对齐:

在 Strapi 容器内部执行如下标准命令,一键装配默认的演示首页布局体系:

2. Loomix 模块化区块自动化同步引擎 (sync-loom-component.js)

在 Strapi 的 Storefront Management 控制台中,点击 + Add to Storefront (Queue)Remove Style (Queue) 将排版改动追加进 sync-history.json 队列。点击 Update Storefront 后即可自动同步设计预设,并全自动触发 GitHub Actions 编译发版流水线。

生产环境同步所需环境变量:

将如下变量配置在 website-admin/.env 与宿主机根目录 .env 文件中。请确保 Token 包含 'repo' 与 'workflow' 权限范围:

GitHub CI/CD 自动化同步环境配置
env
GITHUB_DEPLOY_TOKEN=ghp_your_personal_access_token # Requires 'repo' and 'workflow' scopes
GITHUB_DEPLOY_REPO=your_username/your_repo_name

7. 在不同部署架构拓扑之间平滑热迁移

若您计划将方案 A 平滑迁移升级至方案 B,或需要更换绑定的主域名,请参照如下标准运维工序:

涉及变更的业务类型建议受影响需要热重启的微服务清单
.env 中的各项公开 URL 地址Strapi、Medusa、Storefront(先在 GitHub Actions 触发编译,再拉取新镜像)
调整 MEDUSA_ALLOW_HTTP_COOKIES 配置仅需重启 Medusa 容器
新增 Caddy 代理网关(从方案 A 迁移至方案 B)启动 Caddy 容器 (docker compose up -d caddy);拉取全新容器镜像
修改 hosts 本地解析(方案 B)服务端完全无需变更;仅需在您本地 Windows 办公机上修改 hosts 映射
方案无缝平滑切换演练
bash
# 1. Edit .env — switch to Profile B URLs, set MEDUSA_ALLOW_HTTP_COOKIES=false
nano .env
# 2. Add hosts entry on Windows
# 3. Start Caddy
docker compose up -d caddy
# 4. Pull new images:
docker compose pull strapi medusa && docker compose up -d strapi medusa

8. 一键升级全栈微服务组件至最新稳定版

运行 server-update.sh 脚本,可在确保数据库所有核心业务数据与订单资产绝对安全的前提下,平滑热更新全部微服务。

9. 常用日常运维诊断与容器管理指令集

汇总在日常运维过程中最实用的 Docker 容器状态审查、热重启与冷备份命令行:

日常运维诊断常用指令:
bash
./setup.sh # On Linux / macOS
.\setup.bat # On Windows

10. 系统微服务内部通信网络与端口映射全景图

微服务容器间通信的专属隔离网桥 (Internal Bridge Network):

  • 前端商城 (Storefront)::8000
  • Medusa API + 管理后台::9000
  • Strapi CMS 内容中台::1337
  • Meilisearch 搜索引擎::7700
  • MinIO 存储控制台::9001
  • Umami 隐私统计::3005
  • OpenObserve 监控运维::5080

由 Caddy 网关负责七层流量分发的主机域名路由表:

  • https://store.local -> storefront:8000
  • https://api.local -> medusa:9000
  • https://admin.local -> strapi:1337
  • https://analytics.local -> umami:3000
  • https://monitor.local -> openobserve:5080
  • https://api.local/minio/ -> minio:9000

受防火墙保护的内部私有容器网络 loomix-network:

容器之间在 Docker 桥接内网中通过标准服务名无缝寻址通信(例如 http://storefront:8000http://medusa:9000http://meilisearch:7700)。Meilisearch 属于绝对内网敏感服务,绝不能将其对外公网暴露映射。

核心运维控制指令速查表

聚合查看全栈所有微服务的实时标准输出日志:
bash
docker compose ps
针对性热重启某个特定微服务容器:
bash
docker compose logs -f medusa
docker compose logs -f strapi
docker compose logs -f storefront
docker compose logs -f openobserve
安全平稳下线全套微服务系统:
bash
docker builder prune -f
docker system prune -f
全量服务重启(安全保留全部 Volume 数据卷与数据库)
bash
docker compose down
docker compose up -d