Skip to content

全栈服务部署与镜像同步指南 ​

目标: 将本地 source/lab 的代码部署到服务器 /srv 目录,并按顺序启动所有 Docker 服务。 前置条件: 已完成 目录初始化 和 Docker 安装。

1. 代码同步 (Local -> Server) ​

你需要将本地开发好的代码 (docker-compose.yml, 配置文件, 源代码) 上传到服务器。

方式 A: 使用 Git (推荐) ​

如果你的代码在 GitHub/Gitee 上:

bash
# 在服务器上
cd /srv/app
git clone https://github.com/yourname/neat-project.git neat

方式 B: 使用 SCP/Rsync (直接上传) ​

如果代码在本地 c:\Users\hongj\source\lab:

在 Windows 本地 PowerShell 执行:

powershell
# 假设服务器 IP 为 192.168.1.100,用户为 allen

# 1. 上传 Neat 项目
scp -r c:\Users\hongj\source\lab\neat-project\ allen@192.168.1.100:/srv/app/neat

# 2. 上传 Docker Compose 配置 (假设你整理在 config 目录)
scp -r c:\Users\hongj\source\lab\deploy\core\ allen@192.168.1.100:/srv/core/
scp -r c:\Users\hongj\source\lab\deploy\hub\ allen@192.168.1.100:/srv/hub/

2. Docker 网络初始化 ​

所有服务需要互通,我们创建一个统一的桥接网络 hub_net。

bash
# 在服务器执行
docker network create hub_net

3. 分层启动服务 (Deployment Sequence) ​

按照依赖关系,依次启动:Core (网关) -> Monitor (监控) -> Hub (存储) -> App (业务)。

步骤 1: 启动基础设施 (Core) ​

包含 Nginx Proxy, FRP Client, Portainer。

bash
cd /srv/core
# 检查配置
ls -l
# 启动
docker compose up -d
# 验证
docker compose logs -f nginx

确保 Nginx 没有报错,且 80/443 端口已监听。

步骤 2: 启动监控 (Monitor) ​

包含 Prometheus, Grafana, Node-Exporter。

bash
cd /srv/monitor
docker compose up -d

步骤 3: 启动 Hub 服务 (Hub) ​

包含 Nextcloud, Jellyfin, PhotoPrism。

bash
cd /srv/hub
# 拉取最新镜像 (网盘和媒体中心镜像较大,耐心等待)
docker compose pull
# 启动
docker compose up -d

步骤 4: 启动业务应用 (App) ​

包含 Neat Project, Ark Backend, Postgres/MySQL。

bash
cd /srv/app/neat
# 1. 确保数据库目录权限
mkdir -p ./data/db
# 2. 启动
docker compose up -d
# 3. 检查数据库初始化日志
docker compose logs -f db

4. 验证与排查 ​

4.1 检查容器状态 ​

bash
docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
  • 正常: Status 显示 Up x hours。
  • 异常: Status 显示 Exited 或 Restarting。

4.2 检查端口映射 ​

  • hub-nginx: 0.0.0.0:80->80, 0.0.0.0:443->443
  • portainer: 127.0.0.1:9000->9000 (安全起见建议只监听内网或通过 Nginx 转发)

4.3 浏览器访问 ​

  • 访问 http://你的服务器IP -> 应该看到 Nginx 默认页或你配置的首页。
  • 访问 http://你的服务器IP:8081 (如果暴露了) -> Nextcloud。

5. 常用维护命令 ​

bash
# 更新所有服务镜像
docker compose pull && docker compose up -d

# 查看某服务日志 (如 neat)
cd /srv/app/neat
docker compose logs --tail=100 -f app

# 重启 Nginx (修改配置后)
docker exec -it hub-nginx nginx -s reload

方舟 · Ark