feat(deploy): add docker
This commit is contained in:
42
deploy/README.md
Normal file
42
deploy/README.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# iam-service 部署(仅核心服务)
|
||||
|
||||
本目录仅包含 **iam-service** 的部署配置,明确排除以下组件:
|
||||
- PostgreSQL(不在本目录内提供部署/启动)
|
||||
- Redis(不在本目录内提供部署/启动)
|
||||
- iam-front(不在本目录内提供部署/启动)
|
||||
|
||||
## 环境变量(唯一真实来源)
|
||||
- 唯一来源:`iam-service/.env`
|
||||
- 部署脚本与 docker-compose 均以该文件作为环境变量来源(包括端口映射所需的 `${PORT}` 插值)。
|
||||
|
||||
## 密钥文件验证(以 data 目录为准)
|
||||
- `iam-service/data/jwt_private_key.pem`
|
||||
- `iam-service/data/jwt_public_key.pem`
|
||||
|
||||
若 `.env` 中显式设置了 `JWT_PRIVATE_KEY_PEM` / `JWT_PUBLIC_KEY_PEM`,校验脚本会要求其内容与上述文件内容一致;若未设置,则要求上述文件存在且非空。
|
||||
|
||||
## 部署文件结构
|
||||
- `deploy/validate-env.sh`:环境变量与密钥文件校验
|
||||
- `deploy/docker/Dockerfile`:iam-service 镜像构建
|
||||
- `deploy/docker/docker-compose.yml`:仅定义 iam-service 服务
|
||||
- `deploy/docker/start.sh`:启动(会先执行校验脚本)
|
||||
- `deploy/docker/stop.sh`:停止
|
||||
|
||||
## 启动/停止
|
||||
|
||||
启动:
|
||||
```bash
|
||||
bash deploy/docker/start.sh
|
||||
```
|
||||
|
||||
停止:
|
||||
```bash
|
||||
bash deploy/docker/stop.sh
|
||||
```
|
||||
|
||||
## 外部依赖(由你自行提供)
|
||||
iam-service 启动仍需要以下外部服务地址(来自 `.env`):
|
||||
- `DATABASE_URL`:指向已存在的 PostgreSQL 实例
|
||||
- `REDIS_URL`:指向已存在的 Redis 实例
|
||||
|
||||
注意:若通过 Docker 部署,`.env` 中的 `localhost/127.0.0.1` 指向的是容器自身,不是宿主机。此时请将地址改为宿主机可达 IP 或网关域名(例如 `host.docker.internal`,视你的 Docker 环境而定)。
|
||||
Reference in New Issue
Block a user