Я успешно запускаю простое приложение веб-API dotnet core 2.1 в докере, но хочу запустить его под пользовательской учетной записью, а не под root, поскольку это, предположительно, лучшая практика.
Я могу добавить учетную запись иперейдите на эту учетную запись, но Kestral выдает ошибку при запуске.
Я неоднократно искал в Интернете и не могу найти решения.
Вот файл Docker.
FROM sel-docker.artifactory.metro.ad.selinc.com/microsoft/dotnet:2.1.500-sdk-
alpine3.7 AS build-env
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# build runtime image
FROM sel-docker.artifactory.metro.ad.selinc.com/microsoft/dotnet:2.1.6-
aspnetcore-runtime-alpine3.7
# Create a group and user
RUN addgroup -S -g 1000 customgroup \
&& adduser -S -u 1000 -G customgroup -s /bin/sh customuser
WORKDIR /app
RUN mkdir -p /local/
COPY --from=build-env /app/out .
RUN chown customuser:customgroup /local
RUN chown customuser:customgroup /app
# Tell docker that all future commands should run as the appuser user
USER customuser
ENTRYPOINT ["dotnet", "ConfigApi.dll"]
А вот ошибка Кестраля, когда я запускаю результирующее изображение.
crit: Microsoft.AspNetCore.Server.Kestrel[0]
Unable to start Kestrel.
System.Net.Sockets.SocketException (13): Permission denied
...
Кто-нибудь решил эту проблему?