一键部署 标题日记 前端 + portal 后端 + MySQL。
diary-docker/
├── docker-compose.yml # 编排配置
├── README_backup.md # 数据库备份与恢复
├── docker/ # Nginx、前端构建等 Docker 文件
├── portal/ # 后端子模块
└── diary-vue/ # 前端子模块
- Docker(含 Docker Compose)
- Git(源码构建时需要,用于克隆子模块)
| 方式 | 适合谁 | 是否需要子模块 |
|---|---|---|
| Docker Hub 镜像(推荐分享) | 只想快速跑起来 | 否 |
| 本地构建 | 开发者改代码调试 | 是 |
无需克隆子模块,只需本仓库的 compose 和 docker/ 配置。
git clone https://github.com/KyleBing/diary-docker.git
cd diary-docker# 默认拉取 9.5.5(见 VERSION 文件)
docker compose -f docker-compose.hub.yml up -d指定其他版本:
DIARY_VERSION=9.5.5 docker compose -f docker-compose.hub.yml up -dhttp://localhost:8080/diary/
首次访问时,前端会引导完成初始化。
默认填写的内容就能直接使用,直接下一步就行。
完成初始化。
| 镜像 | 说明 |
|---|---|
kylebing/diary-portal:9.5.5 |
后端 |
kylebing/diary-web:9.5.5 |
前端 + Nginx |
版本号与仓库根目录 VERSION 文件一致。
git clone --recurse-submodules https://github.com/KyleBing/diary-docker.git
cd diary-docker若已克隆但未拉取子模块:
git submodule update --init --recursivedocker compose up -d --build首次启动会拉取镜像并编译前后端,可能需要几分钟。
http://localhost:8080/diary/
默认端口为 8080,不是 80。访问时请带上
:8080。
默认填写的内容就能直接使用,直接下一步就行。
完成初始化。
复制示例文件并按需修改:
cp .env.example .env| 变量 | 默认值 | 说明 |
|---|---|---|
WEB_PORT |
8080 |
对外访问端口(宿主机) |
DB_PASSWORD |
rootpassword |
MySQL root 密码 |
DIARY_VERSION |
9.5.5 |
Docker Hub 镜像版本标签 |
DOCKERHUB_USER |
kylebing |
Docker Hub 用户名 |
若希望使用 http://localhost/diary/(不带端口号),可设置 WEB_PORT=80。Windows 上 80 端口可能需要管理员权限,且易与本机其他 Web 服务冲突。
# 查看状态
docker compose ps
# 查看日志
docker compose logs -f
# 停止
docker compose down
# 停止并删除数据(会清空数据库,慎用)
docker compose down -v
# 后端更新后重建
docker compose up -d --build portal
# 前端更新后重建
docker compose up -d --build web数据库备份与恢复见 README_backup.md。
git submodule update --remote portal
docker compose up -d --build portalgit submodule update --remote diary-vue
docker compose up -d --build webgit pull --recurse-submodules| 容器 | 说明 | 对外端口 |
|---|---|---|
diary-mysql |
MySQL 8.0 | 无(仅内部) |
diary-portal |
后端 API | 无(经 Nginx 反代) |
diary-web |
Nginx + 前端静态资源 | WEB_PORT(默认 8080) |
发新版本时,先更新根目录 VERSION 文件,再构建推送:
# 登录 Docker Hub
docker login
# Windows
.\scripts\publish.ps1 -Latest
# Linux / macOS
chmod +x scripts/publish.sh
./scripts/publish.sh 9.5.5 kylebing --latest脚本会构建并推送:
kylebing/diary-portal:<版本>kylebing/diary-web:<版本>
加 -Latest / --latest 会同时推送 latest 标签。
也可手动:
docker compose build
docker compose push同一局域网内的其他设备可通过本机 IP 访问:
http://<你的IP>:8080/diary/
注意防火墙需放行对应端口。仅建议在可信局域网内使用。
- 前端:KyleBing/diary →
diary-vue/ - 后端:KyleBing/portal →
portal/