簡體   English   中英

如何在 docker 容器文件夾中授予文件夾權限

[英]How to give folder permissions inside a docker container Folder

我正在我的 Dockerfile 中創建一個文件夾,我想給它一個寫權限。 但是當我嘗試這樣做時,我收到了權限被拒絕錯誤

FROM python:2.7
RUN pip install Flask==0.11.1 
RUN useradd -ms /bin/bash admin
USER admin
COPY app /app
WORKDIR /app
RUN chmod 777 /app
CMD ["python", "app.py"] 

我的錯誤是

PS C:\Users\Shivanand\Documents\Notes\Praneeth's work\Flask> docker build -t 
shivanand3939/test .
Sending build context to Docker daemon  209.9kB
Step 1/8 : FROM python:2.7
---> 8a90a66b719a
Step 2/8 : RUN pip install Flask==0.11.1
---> Using cache
---> 6dc114bd7cf1
Step 3/8 : RUN useradd -ms /bin/bash admin
---> Using cache
---> 1cfdb6eea7dc
Step 4/8 : USER admin
---> Using cache
---> 27c5e8b09f15
Step 5/8 : COPY app /app
---> Using cache
---> 5d628573b24f
Step 6/8 : WORKDIR /app
---> Using cache
---> 351e19a5a007
Step 7/8 : RUN chmod 777 /app
---> Running in aaad3c79e0f4
**chmod: changing permissions of ‘/app’: Operation not permitted
The command '/bin/sh -c chmod 777 /app' returned a non-zero code: 1**

如何授予對 Docker 容器內的 app 文件夾的寫入權限

我猜你正在切換到用戶“admin”,它沒有更改/ app目錄權限的所有權。 使用“root”用戶更改所有權。 Dockerfile下面為我工作 -

FROM python:2.7
RUN pip install Flask==0.11.1 
RUN useradd -ms /bin/bash admin
COPY app /app
WORKDIR /app
RUN chown -R admin:admin /app
RUN chmod 755 /app
USER admin
CMD ["python", "app.py"] 

PS - 盡量擺脫“777”的許可。 我暫時試圖在Dockerfile上面做這件事。

正如其他用戶已經指出的那樣,將USER admin移至后續步驟

FROM python:2.7
RUN pip install Flask==0.11.1 
RUN useradd -ms /bin/bash admin
COPY --chown=admin:admin app /app
WORKDIR /app
USER admin
CMD ["python", "app.py"] 

對於版本v17.09.0-ce和更新版本,您可以使用可選標志--chown=<user>:<group>ADDCOPY命令。

例如

COPY --chown=<user>:<group> <hostPath> <containerPath>

有關--chown標志的文檔記錄在Dockerfile Reference頁面上

在第二行,在“From....”之后,添加一行:USER root

這將為您提供 root 用戶的權力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM