【Docker】"コンテナから作成したマウントディレクトリのファイルの権限設定"

Dockerの開発環境で起こりうる、
ファイルの保存にいちいち管理者権限が必要だと求められるケース。
それの回避策です。

こんな時に起こる

プログラムソースを配置しているディレクトリをマウントしており、コンテナ上でファイルを作成。
その後ホストマシンからソースに変更を加えて保存しようとすると、sudoで実行し直してと出る。

対策

ファイルの所有者をホストに変える。

コンテナで作成したファイルは所有者、グループともにrootになっているのでそれをホストユーザーに変更してあげればいい。

# 構文
chown HOST USER NAME TARGET FILE NAME
chgrp HOST USERS GROUP TARGET FILE NAME
chmod PERMISSION NUMBER TARGET FILE NAME

# 例
chown host sample_model.php
chgrp host sample_model.php
chmod 777 sample_model.php

要するにホストで作ったファイルとコンテナ上で作ったファイルでパーミッションを統一させておくといいというわけです。

権限