🐙
wslのユーザーIDとDockerコンテナ内のユーザーIDを合わせる方法
やりたいこと
windowsでDockerを利用するとなるとwslの利用がほぼ必須となる。
筆者もlaravelプロジェクトの開発環境をDockerで作成している。
そしてWSLにおいて、Windowsホスト側からDockerのphpコンテナ内のファイルを編集しようとすると、権限エラーが発生することがある。
そこでwslのユーザーとdockerコンテナ内のユーザーを合わせることでこのエラーを解決する。
手順
まずはwslのユーザーを確認する
id -u
筆者の環境では1000
と返ってきた。
次にphpコンテナのimage作成用のdockerfile内に以下の記述を追加する
# Ubuntuベースのイメージの場合
RUN usermod -u 1000 www-data
# CentOS/Fedoraベースのイメージの場合
RUN usermod -u 1000 nginx
WORKDIR /var/www
USER www-data # または USER nginx
これで、WSLとDockerのphpコンテナ内のユーザーIDが同期され、権限の問題が解決する。
Discussion