如何在 docker 容器文件夹中授予文件夹权限
How to give folder permissions inside a docker container Folder
我正在我的 Docker 文件中创建一个文件夹,我想给它写权限。但是当我尝试这样做时出现权限被拒绝的错误
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 容器中的应用程序文件夹授予写入权限
我猜您正在切换到用户 "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"]
对于版本 release v17.09.0-ce 和更高版本,您可以将可选标志 --chown=<user>:<group>
与 ADD
或 COPY
命令一起使用.
例如
COPY --chown=<user>:<group> <hostPath> <containerPath>
--chown 标志的文档记录在 Dockerfile Reference page。
我正在我的 Docker 文件中创建一个文件夹,我想给它写权限。但是当我尝试这样做时出现权限被拒绝的错误
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 容器中的应用程序文件夹授予写入权限
我猜您正在切换到用户 "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"]
对于版本 release v17.09.0-ce 和更高版本,您可以将可选标志 --chown=<user>:<group>
与 ADD
或 COPY
命令一起使用.
例如
COPY --chown=<user>:<group> <hostPath> <containerPath>
--chown 标志的文档记录在 Dockerfile Reference page。