Imagem do .NET 10 SDK para compilação, testes e publicação de aplicações em pipelines de contêineres. Acrescenta ferramentas de diagnóstico de rede à imagem oficial; aplicações produzidas devem usar uma imagem de runtime, como lzocateli/dotnet-aspnet, no estágio final.
| Item | Valor |
|---|---|
| Imagem | lzocateli/dotnet-sdk:10.0.400-noble |
| Imagem base | Digest do manifest multi-arquitetura de mcr.microsoft.com/dotnet/sdk:10.0-noble |
| Plataformas | linux/amd64, linux/arm64 |
| Usuário padrão | 1654:1654 (APP_UID da imagem oficial) |
| Comando padrão | dotnet --info |
| Diretório de trabalho | /workspace |
| Código-fonte | https://github.com/lzocateli/containers/tree/main/dotnet-sdk |
| Documentação | https://github.com/lzocateli/containers/tree/main/dotnet-sdk |
curl, iputils-ping, libxml2-dev, net-tools e telnet instalados dos repositórios Ubuntu Noble;/workspace gravável pelo usuário não root.dotnet;docker pull lzocateli/dotnet-sdk:10.0.400-noble
docker run --rm lzocateli/dotnet-sdk:10.0.400-noble
Para compilar um projeto no diretório atual:
docker run --rm \
--volume "$PWD:/workspace" \
lzocateli/dotnet-sdk:10.0.400-noble \
dotnet publish --configuration Release --output /workspace/out
O diretório montado deve permitir escrita pelo UID 1654. Não monte o socket Docker nem execute como root sem necessidade explícita.
services:
build:
image: lzocateli/dotnet-sdk:10.0.400-noble
user: "1654:1654"
working_dir: /workspace
volumes:
- ./:/workspace
command: ["dotnet", "publish", "--configuration", "Release", "--output", "/workspace/out"]
As variáveis DOTNET_*, NUGET_* e o comportamento do CLI seguem a imagem oficial. Não há variável própria obrigatória, porta exposta, volume declarado ou health check. Forneça tokens NuGet como secret do BuildKit ou do orquestrador, nunca por ARG, ENV no Dockerfile ou arquivo versionado.
Sem entrypoint fixo, o primeiro argumento de docker run pode substituir dotnet --info. O processo executado torna-se o PID 1 e recebe diretamente os sinais do runtime. A imagem não executa bootstrap, migração ou serviço persistente.
1654:1654;/workspace não precisar receber artefatos;# 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.10-noble AS runtime
WORKDIR /app
COPY --from=build --chown=1654:1654 /out .
ENTRYPOINT ["dotnet", "Aplicacao.dll"]
docker build --pull --tag lzocateli/dotnet-sdk:10.0.400-noble dotnet-sdk
Para múltiplas plataformas:
docker buildx build \
--platform linux/amd64,linux/arm64 \
--tag lzocateli/dotnet-sdk:10.0.400-noble \
dotnet-sdk
| Tag | Mutabilidade | Compatibilidade | Uso recomendado |
|---|---|---|---|
10.0.400-noble | Imutável | .NET SDK 10.0.400 em Ubuntu 24.04 | Builds versionados e CI |
Não há política para latest. Uma atualização do SDK, da base, dos pacotes APT ou do contrato exige nova tag imutável e nova validação.
Antes da publicação, execute:
docker buildx build --check --file dotnet-sdk/Dockerfile dotnet-sdk
docker build --pull --tag lzocateli/dotnet-sdk:10.0.400-noble dotnet-sdk
docker run --rm lzocateli/dotnet-sdk:10.0.400-noble dotnet --info
docker inspect lzocateli/dotnet-sdk:10.0.400-noble
Confirme também os ignores, as duas plataformas, o usuário não root, as ferramentas instaladas, scan de vulnerabilidades, SBOM e proveniência.
Use Actions > Publicar imagem de container > Run workflow com:
context_path: dotnet-sdk;image_name: dotnet-sdk;image_tag: 10.0.400-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.
| Sintoma | Causa provável | Verificação | Correção |
|---|---|---|---|
Permission denied em /workspace | bind mount não gravável pelo UID 1654 | docker run --rm ... id | ajuste a propriedade/permissão do host sem usar root permanentemente |
restore retorna 401 | credencial NuGet ausente | execute com logs sem imprimir tokens | forneça a credencial por secret do pipeline |
ping: operation not permitted | runtime removeu a capacidade necessária | revise cap_drop e política do host | prefira curl; conceda somente a capacidade estritamente necessária |
aviso An issue was encountered verifying workloads | verificação upstream tenta uma operação indisponível ao UID não root | compare dotnet workload list; builds comuns continuam funcionando | não execute como root apenas para ocultar o aviso; instale workloads em uma imagem derivada e valide-os explicitamente |
Não há dados persistentes para backup ou restore. Para rollback, volte à tag imutável anterior no pipeline.
System.Security.Cryptography.Xml 10.0.6. Não promova esta imagem a runtime e repita o scan antes da publicação.| Componente | Versão | Licença | Fonte |
|---|---|---|---|
| Conteúdo original deste repositório | Atual | MIT | https://github.com/lzocateli/containers |
| Imagem oficial .NET SDK | 10.0 / Ubuntu Noble | MIT e licenças dos componentes distribuídos | https://github.com/dotnet/dotnet-docker |
| Pacotes Ubuntu | Noble | Licenças próprias de cada pacote | 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.400-noble: atualização para .NET SDK 10.0.400 com imagem base oficial fixada por digest.10.0.302-noble: migração para .NET 10, execução não root, ferramentas de diagnóstico e metadados OCI.Content type
Image
Digest
sha256:33b9b2ea7…
Size
337.1 MB
Last updated
about 1 month ago
docker pull lzocateli/dotnet-sdk:10.0.400-noble