116 lines
2.7 KiB
Markdown
116 lines
2.7 KiB
Markdown
# 部署说明
|
|
|
|
## 镜像地址
|
|
|
|
```
|
|
ghcr.io/zhengchentao/ezbookkeeping:latest
|
|
```
|
|
|
|
每次向 `myrequirement` 分支推送代码,GitHub Actions 自动构建并推送新镜像。
|
|
|
|
---
|
|
|
|
## 首次迁移(从官方镜像换成自定义镜像)
|
|
|
|
### 1. 备份容器内配置文件到宿主机
|
|
|
|
```bash
|
|
sudo docker cp ezbookkeeping:/ezbookkeeping/conf/ezbookkeeping.ini /opt/ezbookkeeping/ezbookkeeping.ini
|
|
```
|
|
|
|
> 这样之后删容器也不会丢配置。
|
|
|
|
### 2. 停止并删除旧容器
|
|
|
|
```bash
|
|
docker stop ezbookkeeping && docker rm ezbookkeeping
|
|
```
|
|
|
|
> 只删容器本身,数据目录不受影响。
|
|
|
|
### 3. 登录 GitHub Container Registry(只需一次)
|
|
|
|
在 GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic) 生成 token,勾选 `read:packages`,然后:
|
|
|
|
```bash
|
|
echo 你的TOKEN | docker login ghcr.io -u zhengchentao --password-stdin
|
|
```
|
|
|
|
### 4. 拉取新镜像
|
|
|
|
```bash
|
|
docker pull ghcr.io/zhengchentao/ezbookkeeping:latest
|
|
```
|
|
|
|
### 5. 启动容器
|
|
|
|
```bash
|
|
docker run -d \
|
|
--name ezbookkeeping \
|
|
--restart unless-stopped \
|
|
-p 8080:8080 \
|
|
-v /opt/ezbookkeeping/data:/ezbookkeeping/data \
|
|
-v /opt/ezbookkeeping/ezbookkeeping.ini:/ezbookkeeping/conf/ezbookkeeping.ini \
|
|
-e EBK_MCP_ENABLE_MCP=true \
|
|
-e EBK_SECURITY_ENABLE_API_TOKEN=true \
|
|
ghcr.io/zhengchentao/ezbookkeeping:latest
|
|
```
|
|
|
|
**参数说明:**
|
|
| 参数 | 含义 |
|
|
|------|------|
|
|
| `-d` | 后台运行 |
|
|
| `--restart unless-stopped` | 服务器重启后自动启动 |
|
|
| `-p 8080:8080` | 端口映射 |
|
|
| `-v .../data:...` | 挂载数据目录(数据库、图片等) |
|
|
| `-v .../ezbookkeeping.ini:...` | 挂载配置文件 |
|
|
| `-e EBK_*` | 环境变量覆盖配置 |
|
|
|
|
### 6. 确认运行正常
|
|
|
|
```bash
|
|
docker ps # 确认容器在运行
|
|
docker logs ezbookkeeping # 查看启动日志,确认无报错
|
|
```
|
|
|
|
---
|
|
|
|
## 后续更新(代码有改动时)
|
|
|
|
```bash
|
|
# 拉取最新镜像
|
|
docker pull ghcr.io/zhengchentao/ezbookkeeping:latest
|
|
|
|
# 停止并删除旧容器
|
|
docker stop ezbookkeeping && docker rm ezbookkeeping
|
|
|
|
# 重新启动(与首次启动命令相同)
|
|
docker run -d \
|
|
--name ezbookkeeping \
|
|
--restart unless-stopped \
|
|
-p 8080:8080 \
|
|
-v /opt/ezbookkeeping/data:/ezbookkeeping/data \
|
|
-v /opt/ezbookkeeping/ezbookkeeping.ini:/ezbookkeeping/conf/ezbookkeeping.ini \
|
|
-e EBK_MCP_ENABLE_MCP=true \
|
|
-e EBK_SECURITY_ENABLE_API_TOKEN=true \
|
|
ghcr.io/zhengchentao/ezbookkeeping:latest
|
|
```
|
|
|
|
---
|
|
|
|
## 常用运维命令
|
|
|
|
```bash
|
|
# 查看运行中的容器
|
|
docker ps
|
|
|
|
# 查看容器实时日志(Ctrl+C 退出)
|
|
docker logs -f ezbookkeeping
|
|
|
|
# 进入容器内部排查问题
|
|
docker exec -it ezbookkeeping sh
|
|
|
|
# 查看磁盘占用
|
|
docker system df
|
|
```
|