linux - 无法在 docker 文件中使用 Chown 更改文件夹所有权
问题描述
chown
在 dockerfile 中运行时,我无法更改文件夹的所有权。目前 /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 没有实现所有权。
推荐阅读
- reactjs - React Navigation v5 发布到生产环境?
- c++ - 如何在不使用特定驱动器字母的情况下确定特定驱动器的类型(对于未初始化或未格式化的驱动器)?
- javascript - 寻找单行 JavaScript 来执行此逻辑
- intellij-idea - 在 PyCharm(和其他 JetBrains IDE)中,如何配置工具提示的背景颜色
- r - 用 sd+mean 计算 r 中的异常值
- android - SystemChannels.lifecycle.setMessageHandler 在发布模式下冻结我的应用程序
- android - 如何使线性布局坚持到 Android 中的 ImageView?
- php - 谷歌照片 api 缺少范围
- ironpython - 对于 Ironpython,inspect.currentframe() 的替代方法是什么?
- python - PermissionError: [WinError 5] 访问被拒绝 - Python 3.7 Twitch Bot