iam-service 部署(仅核心服务)
本目录仅包含 iam-service 的部署配置,明确排除以下组件:
- PostgreSQL(不在本目录内提供部署/启动)
- Redis(不在本目录内提供部署/启动)
- iam-front(不在本目录内提供部署/启动)
环境变量(唯一真实来源)
- 唯一来源:
iam-service/.env - 部署脚本与 docker-compose 均以该文件作为环境变量来源(包括端口映射所需的
${PORT}插值)。
密钥文件验证(以 data 目录为准)
iam-service/data/jwt_private_key.pemiam-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 deploy/docker/start.sh
停止:
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 环境而定)。