开发者社区> 问答> 正文

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

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

这是我的dockerfile:

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,这确实可以工作并且所有权已切换到moduleuserDocker ,但是由于某种原因,它无法通过dockerfile运行。

我在这里想念什么?

展开
收起
祖安文状元 2020-01-08 15:41:57 1343 0
1 条回答
写回答
取消 提交回答
  • / app / Data是fat32分区的安装点吗?在这种情况下,它将无法正常工作,因为fat32无法实现所有权。

    2020-01-08 15:42:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
Docker@Alibaba——超大规模Docker化的实战经验 立即下载