web-dev-qa-db-ja.com

Dockerコンテナー内の '/ tmp'フォルダーのアクセス許可はどこから継承されますか?

PHP Dockerコンテナが'session_start' don't have permissions on /tmp/xxxx file.

「/ tmp」フォルダの権限は'drwxr-xr-t'であることがわかりました。 'drwxrwxrwt'に変更すると、コンテナは通常どおり機能します。

別の無関係な問題をデバッグするために、ホストシステムに何か問題があるかもしれません。しかし、私が何をしたか、そして上記の問題を引き起こす可能性のあるものを覚えていません。

だから私はドッカーコンテナ内の「/ tmp」フォルダのアクセス許可がどこから継承されたか知りたいですか?

前もって感謝します。 :)

2
lfree

答えはDockerfileにあります。

ベースイメージにすでにこれらの誤った権限があるか、Dockerfileがイメージのビルド中に何か悪いことをしています。

どちらの場合も、Dockerfileでこの問題を修正して、新しいイメージを再構築できます。

0
Chaoxiang N

使用するベースイメージを見ると、/tmp権限が正しく設定されています:

$ docker run -it --rm php:5-Apache ls -ald /tmp
drwxrwxrwt 1 root root 4096 Jan 23 00:10 /tmp

これは、Dockerfileのいくつかのステップからのイメージのビルド中、またはコンテナーの実行方法のいずれかで、フォルダー権限の変更が発生したことを意味します。 Dockerfileの詳細や、コンテナーを実行するために使用されるコマンド(docker-compose.ymlファイルを使用している場合はそれを含む)がないと、より詳細な答えを出すことができないと思います。

2
BMitch