Até o Alpine 3.19, um Dockerfile baseado no Alpine com .NET 6 costumava ter uma linha que criava o grupo e o usuário "app", com direitos limitados, como esta:
RUN addgroup -S app && adduser -S app -G app
O Dockerfile terminaria com:
USER app
ENTRYPOINT ["./entrypoint.sh"]
Com Alpine 3.20 e NET 8,
FROM mcr.microsoft.com/dotnet/aspnet:8.0.8-alpine3.20
(semelhante ao SDK)
a compilação reclamou que o grupo/usuário "app" já existe. Omitir a linha fez a compilação da imagem funcionar novamente.
Embora pareça legal, não consigo encontrar isso documentado em lugar nenhum. Não estou muito familiarizado com Docker e Alpine Linux, então onde foi que perdi a documentação?
Esta é uma mudança comportamental introduzida com o .NET 8 - veja o Novo usuário 'app' não root nas imagens do Linux :
grupo, embora não seja mencionado nos documentos.
Mas você pode verificar o código fonte. Por exemplo para
alpine3.20/amd64 /Dockerfile
:Que usa as "mesmas configurações" para grupo e usuário.