web-dev-qa-db-ja.com

Dockerコンテナーフォルダー内のフォルダーアクセス許可を付与する方法

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フォルダーに書き込み権限を付与するにはどうすればよいですか

12
Shivanand T

/ appディレクトリの権限を変更する所有権を持たないユーザー「admin」に切り替えていると思います。 「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で一時的にやろうとしました。

22
vivekyad4v

他のユーザーが既に指摘したように、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 およびnewerの場合、オプションのフラグ--chown=<user>:<group>ADDまたはCOPYコマンドのいずれか。

例えば

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

--chownフラグのドキュメントは Dockerfileリファレンスページ に記載されています。

1
so-random-dude