Files
beaver_project/authz-service/Dockerfile
steven_li 7e9d1dcacb docs(authz-service): 更新 README 文档完善服务描述和文件结构
- 更新 authz-service 描述,明确已包含 Dockerfile、启动脚本和空白种子数据
- 在目录结构图中添加 Dockerfile 文件路径
- 在文档末尾添加 authz-service 的 README 路径到文档列表
- 从后续建议列表中移除已完成的 Dockerfile 和启动脚本相关条目
- 将 authz-service 的部署脚本更新为控制面接入和部署编排
2026-03-13 16:49:06 +08:00

36 lines
1.0 KiB
Docker

# syntax=docker/dockerfile:1.7
FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
AUTHZ_HOST=0.0.0.0 \
AUTHZ_PORT=19090 \
AUTHZ_DATA_DIR=/var/lib/authz-service/data
WORKDIR /opt/authz-service
COPY src/pyproject.toml src/uv.lock ./
RUN mkdir -p app && touch app/__init__.py && \
uv pip install --system --no-cache .
COPY src/app ./app
RUN uv pip install --system --no-cache .
COPY runtime/seed-data /opt/authz-service/seed-data
COPY docker-entrypoint.sh /opt/authz-service/docker-entrypoint.sh
RUN chmod +x /opt/authz-service/docker-entrypoint.sh && \
mkdir -p /var/lib/authz-service/data
EXPOSE 19090
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=5 \
CMD python - <<'PY' \
import json, urllib.request \
payload = json.loads(urllib.request.urlopen('http://127.0.0.1:19090/healthz', timeout=3).read().decode('utf-8')) \
assert payload.get('status') == 'ok' \
PY
ENTRYPOINT ["/opt/authz-service/docker-entrypoint.sh"]