![](/img/trans.png)
[英]Docker Redis start with persistent storage using -v gives error (chown: changing ownership of '.': Permission denied)
[英]Unable to change folder ownership using Chown in docker file
在 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.
如果我在容器内运行 go 并运行chown -R moduleuser:moduleuser /app/Data
,这确实有效并且所有权切换到moduleuser
但由于某种原因它无法通过 dockerfile 工作。
我在这里想念什么?
/app/Data 是 fat32 分区的挂载点吗? 在这种情况下它不会起作用,因为 fat32 没有实现所有权。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.