C# Docker容器mcr.microsoft.com/dotnet/sdk不以root用户身份发布
我使用docker容器构建C#application 问题是输出文件和目录(/bin和/obj)的权限是“root” 我希望文件的输出不是以root用户的身份(我知道chown命令,但我不希望以root用户的身份获取文件) 例如:C# Docker容器mcr.microsoft.com/dotnet/sdk不以root用户身份发布,c#,.net,docker,.net-core,C#,.net,Docker,.net Core,我使用docker容器构建C#application 问题是输出文件和目录(/bin和/obj)的权限是“root” 我希望文件的输出不是以root用户的身份(我知道chown命令,但我不希望以root用户的身份获取文件) 例如: docker-run-rm-v/home/user/d:/app-w/app mcr.microsoft.com/dotnet/sdk:3.1 dotnet-publish使用默认的dotnet/sdk这是不可能的。但您可以构建自己的容器映像,并将其用于构建应用程序:
docker-run-rm-v/home/user/d:/app-w/app mcr.microsoft.com/dotnet/sdk:3.1 dotnet-publish使用默认的dotnet/sdk
这是不可能的。但您可以构建自己的容器映像,并将其用于构建应用程序:
FROM mcr.microsoft.com/dotnet/sdk:3.1
ARG UID=1000
ARG GID=1000
RUN groupadd -g $GID user
RUN useradd -g $GID -u $UID -m -s /bin/bash user
USER user
WORKDIR /app
docker run --rm -v /home/user/d:/app buildcontainer dotnet publish
使用uid
和gid
构建它,如下所示:
docker build <path to dir with Dockerfile> --build-arg UID=$(id -u) --build-arg GID=$(id -g) -t buildcontainer
因为容器和容器外部环境之间的uid和gid匹配,所以输出文件将具有您期望的所有权