deploy: use published GHCR image in docker-compose.yml
This commit is contained in:
1 parent
037edc2f5e
commit
ce4dfd635d
4 files changed
+31
-27
No files matched your search
+18
-9
@@ -4,16 +4,20 @@
|
||||
|
||||
## 在新服务器部署
|
||||
|
||||
进入仓库目录,准备配置;使用预构建镜像时只需 `compose.yml`、`.env.example` 和自己的 `.env`:
|
||||
部署只需要 `docker-compose.yml` 和 `.env`。可下载配置文件及空白模板:
|
||||
|
||||
```bash
|
||||
mkdir -p simkeep
|
||||
cd simkeep
|
||||
curl -fsSLO https://raw.githubusercontent.com/rest-rain/simkeep/main/docker-compose.yml
|
||||
curl -fsSLO https://raw.githubusercontent.com/rest-rain/simkeep/main/.env.example
|
||||
test -f .env || cp .env.example .env
|
||||
chmod 600 .env
|
||||
```
|
||||
|
||||
编辑 `.env`,将 `SIMKEEP_PUBLIC_URL` 改为实际访问地址,例如 `http://服务器IP:5180`。`SIMKEEP_PORT` 控制宿主机端口,默认 5180;改端口时同步修改公网地址。保持 HTTP 时使用 `SIMKEEP_SECURE_COOKIES=0`。每个用户登录网页的“通知设置”,点击“配置 Telegram / 配置邮件”保存自己的凭据;不需要修改 `.env` 或重启。`.env` 中的通知凭据仅作为可选公共默认服务。
|
||||
|
||||
在 `.env` 中将镜像改为:
|
||||
默认使用 GitHub Actions 自动构建的镜像,`.env.example` 已包含:
|
||||
|
||||
```dotenv
|
||||
SIMKEEP_IMAGE=ghcr.io/rest-rain/simkeep:latest
|
||||
@@ -21,12 +25,14 @@ SIMKEEP_IMAGE=ghcr.io/rest-rain/simkeep:latest
|
||||
|
||||
```bash
|
||||
docker compose pull web
|
||||
docker compose up -d --no-build --wait web
|
||||
docker compose up -d --wait web
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
访问 `http://服务器IP:5180/`,首次使用创建自己的账号。服务器防火墙需要允许选定的 TCP 端口。
|
||||
|
||||
Docker Compose 会自动发现 `docker-compose.yml`。也可在命令中加 `-f docker-compose.yml` 指定配置文件。
|
||||
|
||||
默认 Compose 项目名为 `simkeep`,持久化卷为 `simkeep_simkeep-data`,数据库位于容器 `/app/data/simkeep.db`。保持项目名即可复用同一个卷。容器重启、镜像更新及普通 `docker compose down` 都会保留卷;`docker compose down -v` 会删除数据卷。
|
||||
|
||||
### 从源码构建
|
||||
@@ -34,10 +40,11 @@ docker compose ps
|
||||
需要完整仓库。在 `.env` 中设置 `SIMKEEP_IMAGE=simkeep:local`,然后执行:
|
||||
|
||||
```bash
|
||||
docker compose up -d --build --wait
|
||||
docker build -t simkeep:local .
|
||||
docker compose up -d --wait web
|
||||
```
|
||||
|
||||
构建时自动打包前端,宿主机同样无需安装应用依赖。
|
||||
构建时自动打包前端,宿主机同样无需安装应用依赖。Compose 使用已经构建的本地镜像。
|
||||
|
||||
## GitHub 自动构建镜像
|
||||
|
||||
@@ -65,15 +72,17 @@ docker compose up -d --build --wait
|
||||
|
||||
```bash
|
||||
docker compose pull web
|
||||
docker compose up -d --no-build --wait web
|
||||
docker compose up -d --wait web
|
||||
```
|
||||
|
||||
使用源码镜像时,更新代码后执行 `docker compose up -d --build --wait`。更新镜像会重建容器,数据仍保存在原命名卷中。
|
||||
已有部署更新配置文件后,检查 `.env`:如果曾设置 `SIMKEEP_IMAGE=simkeep:local`,将其改为 `ghcr.io/rest-rain/simkeep:latest`,再执行上述命令。保留原 `.env` 中的访问地址和其他配置。旧目录中若仍有 `compose.yml`,先将其改名备份;否则 Compose 会优先读取旧文件。
|
||||
|
||||
使用源码镜像时,更新代码后执行 `docker build -t simkeep:local .`,再执行 `docker compose up -d --wait web`。更新镜像会重建容器,数据仍保存在原命名卷中。
|
||||
|
||||
修改 `.env` 后重建容器加载新配置:
|
||||
|
||||
```bash
|
||||
docker compose up -d --no-build --force-recreate --wait web
|
||||
docker compose up -d --force-recreate --wait web
|
||||
```
|
||||
|
||||
仅执行 `docker compose restart` 不会加载修改后的环境配置。日常查看或重启:
|
||||
@@ -104,7 +113,7 @@ docker compose cp web:/app/data/backups ./docker-backups
|
||||
```bash
|
||||
docker compose stop web
|
||||
docker compose run --rm --no-deps -T --entrypoint python web scripts/restore.py --replace < restore.db
|
||||
docker compose up -d --no-build --wait web
|
||||
docker compose up -d --wait web
|
||||
```
|
||||
|
||||
恢复容器以应用用户读取标准输入,不需要 root 或修改宿主机备份权限。它检查数据库完整性与 SIMKEEP 表结构,临时生成恢复库后替换;未传 --replace 时会拒绝覆盖现有库。恢复容器只执行数据库操作,不启动提醒进程。使用 `docker compose -p 其他项目名` 时,以上所有命令也须带相同项目名。
|
||||
|
||||
Reference in new issue
Block a user