Imagem base do ASP.NET Core 10 em Ubuntu 24.04 para executar aplicações framework-dependent em ambientes produtivos. Mantém a compatibilidade da variante Noble oficial, inicia como usuário não root e não inclui o SDK nem ferramentas adicionais.
| Item | Valor |
|---|---|
| Imagem | lzocateli/dotnet-aspnet:10.0.11-noble |
| Imagem base | Digest do manifest multi-arquitetura de mcr.microsoft.com/dotnet/aspnet:10.0-noble |
| Plataformas | linux/amd64, linux/arm64 |
| Usuário padrão | 1654:1654 (APP_UID da imagem oficial) |
| Entry point | dotnet |
| Comando padrão | --info |
| Diretório de trabalho | /app |
| Porta | 8080/tcp |
| Código-fonte | https://github.com/lzocateli/containers/tree/main/dotnet-aspnet |
| Documentação | https://github.com/lzocateli/containers/tree/main/dotnet-aspnet |
/app gravável pelo usuário não root.docker pull lzocateli/dotnet-aspnet:10.0.11-noble
docker run --rm lzocateli/dotnet-aspnet:10.0.11-noble
Para executar uma aplicação publicada em ./out:
docker run --rm \
--publish 127.0.0.1:8080:8080 \
--volume "$PWD/out:/app:ro" \
lzocateli/dotnet-aspnet:10.0.11-noble \
Aplicacao.dll
Use esta imagem como estágio final e copie somente os artefatos publicados:
# syntax=docker/dockerfile:1
FROM lzocateli/dotnet-sdk:10.0.400-noble AS build
WORKDIR /workspace
COPY --chown=1654:1654 . .
RUN --mount=type=cache,target=/home/app/.nuget/packages,uid=1654,gid=1654 \
dotnet publish --configuration Release --output /out
FROM lzocateli/dotnet-aspnet:10.0.11-noble AS runtime
COPY --from=build --chown=1654:1654 /out .
CMD ["Aplicacao.dll"]
O entrypoint já é dotnet; por isso a imagem derivada informa somente a DLL em CMD.
services:
app:
image: exemplo/aplicacao:1.0.0
restart: unless-stopped
read_only: true
init: true
ports:
- "127.0.0.1:8080:8080"
environment:
ASPNETCORE_HTTP_PORTS: "8080"
DOTNET_EnableDiagnostics: "0"
tmpfs:
- /tmp:rw,noexec,nosuid,size=64m
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
| Variável | Obrigatória | Secreta | Padrão | Descrição |
|---|---|---|---|---|
ASPNETCORE_HTTP_PORTS | Não | Não | 8080 | Portas HTTP usadas pelo Kestrel quando a aplicação não as sobrescreve. |
ASPNETCORE_ENVIRONMENT | Não | Não | Production quando ausente | Ambiente lógico da aplicação. Não armazene secrets nesta variável. |
DOTNET_EnableDiagnostics | Não | Não | habilitado pelo runtime | Use 0 quando diagnósticos externos não forem necessários. |
Outras variáveis DOTNET_* e ASPNETCORE_* seguem a documentação oficial. Strings de conexão, tokens e chaves devem ser fornecidos por secrets do orquestrador ou arquivos montados, nunca incorporados à imagem.
| Item | Contrato |
|---|---|
8080/tcp | HTTP interno; publique somente via proxy ou rede necessária. |
/app | Artefatos imutáveis da aplicação; prefira conteúdo copiado na imagem ou mount somente leitura. |
/tmp | Temporários de runtime; use tmpfs quando o filesystem for somente leitura. |
A imagem não declara VOLUME e não mantém dados persistentes. Dados de negócio, Data Protection keys e uploads exigem armazenamento externo ou mount explicitamente projetado pela aplicação.
O processo dotnet é o PID 1 e recebe diretamente SIGTERM. A aplicação deve encerrar dentro do período de tolerância do orquestrador. Migrations devem ocorrer em job controlado e idempotente, não implicitamente em todas as réplicas.
Defina o health check na imagem da aplicação ou no orquestrador usando uma rota que verifique a prontidão real. Esta base não instala curl e não presume endpoint, protocolo ou dependências.
1654:1654;read_only, no-new-privileges e remoção de todas as capabilities quando a aplicação não exigir escrita fora de /tmp;docker build --pull --tag lzocateli/dotnet-aspnet:10.0.11-noble dotnet-aspnet
Para múltiplas plataformas:
docker buildx build \
--platform linux/amd64,linux/arm64 \
--tag lzocateli/dotnet-aspnet:10.0.11-noble \
dotnet-aspnet
| Tag | Mutabilidade | Compatibilidade | Uso recomendado |
|---|---|---|---|
10.0.11-noble | Imutável | ASP.NET Core 10.0.11 em Ubuntu 24.04 | Runtime produtivo framework-dependent |
Não há política para latest. Uma atualização do runtime, da base ou do contrato exige nova tag imutável, rebuild da aplicação e validação antes do rollout.
Antes da publicação, execute:
docker buildx build --check --file dotnet-aspnet/Dockerfile dotnet-aspnet
docker build --pull --tag lzocateli/dotnet-aspnet:10.0.11-noble dotnet-aspnet
docker run --rm lzocateli/dotnet-aspnet:10.0.11-noble
docker inspect lzocateli/dotnet-aspnet:10.0.11-noble
Além do smoke test da base, construa uma aplicação mínima com o SDK correspondente e valide HTTP, sinais, execução não root e filesystem somente leitura. Na release, execute scan de vulnerabilidades e confira SBOM, proveniência, labels e manifests das plataformas.
Use Actions > Publicar imagem de container > Run workflow com:
context_path: dotnet-aspnet;image_name: dotnet-aspnet;image_tag: 10.0.11-noble;dockerfile: Dockerfile;platforms: linux/amd64,linux/arm64.O workflow publica no Docker Hub com SBOM e proveniência e pode sincronizar este README. A publicação não ocorre durante o build local.
Atualize reconstruindo a aplicação sobre uma nova tag imutável; faça rollout gradual e mantenha a imagem anterior para rollback. Logs devem ir para stdout/stderr. CPU, memória, réplicas, probes e limites são definidos pela aplicação e pelo orquestrador.
| Sintoma | Causa provável | Verificação | Correção |
|---|---|---|---|
The application ... does not exist | DLL incorreta ou ausente em /app | inspecione os artefatos do estágio de publish | ajuste COPY e CMD da imagem derivada |
| falha ao gravar arquivo | filesystem somente leitura ou UID sem permissão | verifique o caminho e o UID 1654 | use /tmp ou mount dedicado com propriedade correta |
| aplicação não responde em 8080 | aplicação sobrescreveu a URL/porta | revise ASPNETCORE_HTTP_PORTS e logs | alinhe a porta da aplicação, imagem e orquestrador |
| Componente | Versão | Licença | Fonte |
|---|---|---|---|
| Conteúdo original deste repositório | Atual | MIT | https://github.com/lzocateli/containers |
| Imagem oficial ASP.NET Core | 10.0.11 / Ubuntu Noble | MIT e licenças dos componentes distribuídos | https://github.com/dotnet/dotnet-docker |
| Ubuntu | 24.04 Noble | Licenças próprias dos pacotes distribuídos | https://packages.ubuntu.com/noble/ |
O badge MIT descreve somente o conteúdo original deste repositório. A imagem inclui componentes de terceiros que permanecem sujeitos aos termos e avisos de suas fontes. Consulte a política de licenciamento, preserve as atribuições upstream e verifique também os avisos distribuídos dentro da imagem.
10.0.11-noble: atualização para ASP.NET Core 10.0.11 com imagem base oficial fixada por digest.10.0.10-noble: migração para ASP.NET Core 10, execução não root, porta 8080 e metadados OCI.Content type
Image
Digest
sha256:961ba80da…
Size
91.4 MB
Last updated
about 1 month ago
docker pull lzocateli/dotnet-aspnet:10.0.11-noble