无法使用docker文件中的Chown更改文件夹所有权



在dockerfile中运行chown时,我无法更改文件夹的所有权。目前/app/Data归root所有,我正试图将所有权授予moduleuser

这是我的档案:

FROM microsoft/dotnet:2.1-sdk AS build-env
WORKDIR /app
COPY . ./
RUN dotnet restore Project/Magic.csproj --configfile ./NuGet.Config
RUN dotnet publish Project/Magic.csproj -c Release -o out
FROM microsoft/dotnet:2.1-runtime-stretch-slim
WORKDIR /app
COPY --from=build-env /app/Magic/out ./
RUN mkdir /sqlite
RUN chmod 777 /sqlite
RUN useradd -ms /bin/bash moduleuser
RUN chown -R moduleuser:moduleuser /app/Data
USER moduleuser
ENTRYPOINT ["dotnet", "Magic.dll"]

在构建图像时,RUN chown -R moduleuser:moduleuser /app/Data不会引发任何错误。

Step 12/14 : RUN chown -R moduleuser:moduleuser /app/Data ---> Running in f02802d1bb5a Removing intermediate container f02802d1bb5a ---> 1558b0aaf823 Step 13/14 : USER moduleuser

当我检查/app/Data的所有权时,它仍然显示root

moduleuser@cdcc6f8b78bc:/app/Data$ ls -ld drwxr-xr-x 2 root root 4096 Oct 29 00:06 .

如果我进入容器并运行chown -R moduleuser:moduleuser /app/Data,这确实有效,并且所有权被切换到moduleuser,但由于某种原因,它无法通过dockerfile工作。

我在这里错过了什么?

/app/Data是fat32分区的挂载点吗?在这种情况下,它不会起作用,因为fat32没有实现所有权。

最新更新