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
+2
-2
@@ -5,8 +5,8 @@ SIMKEEP_SECURE_COOKIES=0
|
||||
SIMKEEP_DB=data/simkeep.db
|
||||
# Docker Compose 公网端口;改端口时同步修改 SIMKEEP_PUBLIC_URL。
|
||||
SIMKEEP_PORT=5180
|
||||
# Docker Compose 镜像;使用预构建镜像时改为 ghcr.io/rest-rain/simkeep:latest。
|
||||
SIMKEEP_IMAGE=simkeep:local
|
||||
# GitHub Actions 自动构建的镜像;可将 latest 改为已发布的版本标签。
|
||||
SIMKEEP_IMAGE=ghcr.io/rest-rain/simkeep:latest
|
||||
|
||||
# 可选的公共默认通知服务;用户也可在网页单独配置自己的服务。
|
||||
# 从 BotFather 获取 Token。可选用户名不包含 @;留空会自动查询。
|
||||
|
||||
@@ -60,34 +60,30 @@ SIMKEEP 是一个可自行部署的 SIM / eSIM 管理平台。把开通日期、
|
||||
|
||||
需要 Docker Engine 和 Docker Compose 插件。可直接使用 GHCR 镜像,支持 `amd64` / `arm64`,服务器无需安装 Node.js 或 Python。
|
||||
|
||||
下载仓库并进入项目目录后执行:
|
||||
将 [docker-compose.yml](docker-compose.yml) 和 [.env.example](.env.example) 下载到同一目录,进入该目录后执行:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
test -f .env || cp .env.example .env
|
||||
chmod 600 .env
|
||||
```
|
||||
|
||||
编辑 `.env`,把 `SIMKEEP_PUBLIC_URL` 改成自己的访问地址,例如 `http://your-server:5180`,并设置镜像:
|
||||
编辑 `.env`,把 `SIMKEEP_PUBLIC_URL` 改成自己的访问地址,例如 `http://your-server:5180`。本机试用可保留 `http://localhost:5180`。
|
||||
|
||||
```dotenv
|
||||
SIMKEEP_IMAGE=ghcr.io/rest-rain/simkeep:latest
|
||||
```
|
||||
|
||||
本机试用可保留 `http://localhost:5180`。`latest` 对应 `main` 的最新构建;需要固定版本时使用对应版本标签。
|
||||
默认镜像为 `ghcr.io/rest-rain/simkeep:latest`,由 GitHub Actions 自动构建。`latest` 对应 `main` 的最新构建;需要固定版本时修改 `.env` 中的 `SIMKEEP_IMAGE`,使用已发布的版本标签。
|
||||
|
||||
```bash
|
||||
docker compose pull web
|
||||
docker compose up -d --no-build --wait web
|
||||
docker compose up -d --wait web
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
打开 `http://localhost:5180` 或设置的服务器地址,点击“创建账号”。没有预置管理员、初始密码或演示资料。
|
||||
|
||||
也可从源码构建:在 `.env` 中设置 `SIMKEEP_IMAGE=simkeep:local`,然后执行 `docker compose up -d --build --wait`。
|
||||
Docker Compose 会自动读取 `docker-compose.yml`。也可从源码构建,详见 [源码构建说明](docs/DOCKER.md#从源码构建)。
|
||||
|
||||
| 配置项 | 默认值 | 用途 |
|
||||
| --- | --- | --- |
|
||||
| `SIMKEEP_IMAGE` | `simkeep:local` | 镜像名称;使用 GHCR 镜像时填写上面的地址 |
|
||||
| `SIMKEEP_IMAGE` | `ghcr.io/rest-rain/simkeep:latest` | 自动构建镜像;可改为已发布的版本标签 |
|
||||
| `SIMKEEP_PUBLIC_URL` | `http://localhost:5180` | 网页访问地址和提醒中的链接 |
|
||||
| `SIMKEEP_PORT` | `5180` | 宿主机端口;修改时同步调整访问地址 |
|
||||
| `SIMKEEP_BIND_ADDRESS` | `0.0.0.0` | 宿主机监听地址 |
|
||||
@@ -140,15 +136,15 @@ docker compose cp web:/app/data/backups ./docker-backups
|
||||
|
||||
```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`,再执行上述命令。使用源码镜像时,更新代码后先执行 `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` 不会加载修改后的 `.env`。不要执行 `docker compose down -v`,它会删除数据卷。
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
name: simkeep
|
||||
services:
|
||||
web:
|
||||
image: ${SIMKEEP_IMAGE:-simkeep:local}
|
||||
build: .
|
||||
image: ${SIMKEEP_IMAGE:-ghcr.io/rest-rain/simkeep:latest}
|
||||
init: true
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 30s
|
||||
+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