
defradigital/dotnetcoreDEFRA .NET Core父镜像是由英国环境、食品与农村事务部(DEFRA)维护的标准化Docker镜像,旨在为.NET Core应用提供统一的基础构建和运行环境。该镜像基于官方.NET Core SDK和运行时镜像构建,集成了组织内部最佳实践,包括安全加固、依赖管理及构建优化,适用于企业级.NET Core应用的容器化部署。
为组织内部.NET Core应用提供标准化容器基础,确保不同团队开发的应用具有一致的运行环境,简化运维复杂度。
作为微服务架构中.NET Core服务的基础镜像,支持服务网格(如Istio)集成,提供可观测性(日志、指标)基础配置。
在持续集成/持续部署流程中作为构建和测试阶段的基础镜像,确保构建环境一致性,加速流水线执行效率。
dockerfile# 构建阶段:使用父镜像的SDK版本 FROM defra/dotnetcore:8.0-sdk AS build WORKDIR /app COPY *.csproj . RUN dotnet restore COPY . . RUN dotnet publish -c Release -o /app/publish # 运行阶段:使用父镜像的Runtime版本 FROM defra/dotnetcore:8.0-runtime WORKDIR /app COPY --from=build /app/publish . # 非root用户运行(父镜像默认创建appuser) USER appuser ENTRYPOINT ["dotnet", "MyApp.dll"]
yamlversion: '3.8' services: my-dotnet-app: build: context: . dockerfile: Dockerfile image: defra/dotnetcore:8.0-runtime container_name: my-dotnet-service restart: unless-stopped environment: - ASPNETCORE_ENVIRONMENT=Production - LOG_LEVEL=Information - HEALTHCHECK_PATH=/health ports: - "8080:80" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:80/health"] interval: 30s timeout: 10s retries: 3
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
ASPNETCORE_ENVIRONMENT | .NET Core运行环境(Development/Staging/Production) | Production |
LOG_LEVEL | 日志输出级别(Trace/Debug/Information/Warning/Error) | Information |
HEALTHCHECK_PATH | 健康检查端点路径 | /health |
DOTNET_GC_SERVER | 是否启用服务器模式GC | true |
PORT | 应用监听端口 | 80 |
如需覆盖默认配置,可在Dockerfile中通过ENV指令设置环境变量,或在运行时通过-e参数传递。例如:
bashdocker run -d \ --name my-app \ -e ASPNETCORE_ENVIRONMENT=Staging \ -e LOG_LEVEL=Debug \ -p 8080:80 \ defra/dotnetcore:8.0-runtime
apt-get等命令安装,避免污染运行时镜像。





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务