# ============================================================
# 通用运行时镜像（7 个 Host 共用，由 deploy/deploy.sh 调用）
#
# 用法示例：
#   docker build -f deploy/Dockerfile --build-arg APP_DLL=AdminHost.dll -t 0524admin deploy/publish/admin
#
# 说明：
#   - 发布产物由 deploy.sh 在 dotnet/sdk 容器内编译生成，本镜像只负责运行
#   - 容器内统一监听 80 端口（与 docker-compose 的端口映射对应）
# ============================================================
FROM mcr.microsoft.com/dotnet/aspnet:8.0

ARG APP_DLL
ENV APP_DLL=${APP_DLL} \
    ASPNETCORE_URLS=http://+:80 \
    ASPNETCORE_ENVIRONMENT=Production \
    TZ=Asia/Shanghai \
    DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false

# 确保可写 /app/logs 日志目录与 /app/wwwroot/uploads 上传目录
USER root

WORKDIR /app
COPY . .

EXPOSE 80
ENTRYPOINT ["sh", "-c", "exec dotnet ${APP_DLL}"]