如何在Docker容器中给予文件夹权限文件夹

tf7tbtn2  于 2023-03-01  发布在  Docker
关注(0)|答案(4)|浏览(542)

我正在我的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容器内的应用程序文件夹写入权限

zfycwa2u

zfycwa2u1#

我猜你正在切换到用户“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中这样做。

gz5pxeao

gz5pxeao2#

正如Other用户已经指出的,将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>ADDCOPY命令一起使用。

例如

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

--chown标志的文档记录在Dockerfile参考页面上。

js81xvg6

js81xvg63#

在第二行的FROM ...之后,添加一行:

USER root

这将给予您root用户的权限。

ego6inou

ego6inou4#

从root用户运行Docker映像是一种糟糕的做法!例如:添加自定义用户并使用命令扩展权限

RUN addgroup -g 1001 -S 1000 && adduser -u 1001 -S 1000 -G 1000

相关问题