【问题标题】:Unable to change folder ownership using Chown in docker file无法在 docker 文件中使用 Chown 更改文件夹所有权
【发布时间】:2019-10-29 19:37:00
【问题描述】:

在 dockerfile 中运行 chown 时,我无法更改文件夹的所有权。目前 /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,这确实有效,并且所有权切换到moduleuser,但由于某种原因,它无法通过 dockerfile 运行。

我在这里错过了什么?

【问题讨论】:

  • 您向我们展示了. 的权限? /app/Data中其他文件的权限是什么?
  • 请不要发布文字图片。发布文本本身。如果您以详细的方式运行 chown -vR 会怎样?
  • @rok . 在这种情况下是 /app/Data 并且其中的文件当前显示 root 为所有者。
  • @KamilCuk 我跑了-vR,它显示:changed ownership of '/app/Data' from root:root to moduleuser:moduleuser
  • 你实际上是如何运行容器的?

标签: linux docker chown


【解决方案1】:

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

【讨论】:

  • 这似乎不是这样,因为如果我进入容器并运行chown -R moduleuser:moduleuser /app/Data,这确实有效并且所有权切换到moduleuser,但由于某种原因它无法正常工作dockerfile。
猜你喜欢
  • 1970-01-01
  • 2020-03-19
  • 2018-03-17
  • 1970-01-01
  • 2019-12-06
  • 1970-01-01
  • 2012-10-21
  • 2016-02-04
  • 2018-12-03
相关资源
最近更新 更多