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运行。
我在这里想念什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。