解決したいこと
create-react-app時に Permission deniedエラーが出てしまうので解決したい です
発生している問題・エラー
senseiy@senseIY-wsl:~/Practice/Rea-pra/memo-jackA-react$ docker-compose run --rm node sh -c "npx create-react-app app --template typescript" Need to install the following packages: create-react-app Ok to proceed? (y) y npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap. sh: create-react-app: Permission denied npm notice npm notice New minor version of npm available! 8.5.5 -> 8.8.0 npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.8.0 npm notice Run np
環境など
・WindowsのWSL2を使用しています。
・Dockerで開発環境を作っています
・今まで何度か create-react-appをしましたが、その時はエラーが出ませんでした。恐らくrailsと組み合わせていたのでDockerファイルなどの定義が別だったからだと考えています。(./entrypoint.shがあったからパーミッションエラーが出なかった?)
試したこと
・まず、sudo権限をつけて実行してみました。しかし、同じくエラーになってしまいました。
senseiy@senseIY-wsl:~/Practice/Rea-pra/memo-jackA-react$ sudo docker-compose run --rm node sh -c "npx create-react-app app --template typescript" [sudo] senseiy のパスワード: Need to install the following packages: create-react-app Ok to proceed? (y) y npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap. sh: create-react-app: Permission denied npm notice npm notice New minor version of npm available! 8.5.5 -> 8.8.0 npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.8.0 npm notice Run npm install -g npm@8.8.0 to update! npm notice
・今までこのようなことはなかったので、wslの設定を疑い、 https://zenn.dev/ttani/articles/wsl2-docker-edit-root-user
このサイトを参考にして以下の操作を行いました。
(コピペさせて頂きます。)
1 ソースコードが格納されている対象のフォルダの権限がrootになっている場合、一般ユーザ権限に変更しておきます(VSCodeから操作したい対象フォルダそのもののみでOKです)。sampleというフォルダの権限を変更する場合、sudo chown username:username sampleのような形で変更できます。
2 VSCodeを起動しRemote Developmentというエクステンションパックをインストールする。
3 VSCodeのスタータスバーの左下にある緑のアイテムをクリックし、Open Folder in WSLを選択し、WSL内の対象のプロジェクトフォルダを選択する。(WSL側(Linux側)からファイルを開きます)
4 VSCodeのスタータスバーの左下にある緑のアイテムをクリックし、ReOpen in Containerを選択する。
5 下に追加の選択メニューが表示されるので、From a predefined container configuration definitionを選択する。
6 下に追加の選択メニューが表示されどのコンテナを使用するか聞かれるので、任意のものを選択する。(rootユーザで接続したいだけなので、どれでも問題ないと思われれる。軽量のalpineを選択してみました)
7 vscodeのプロジェクト直下に.devcontainerというディレクトリがつくられ、devcontainer.jsonとDockerfileが作成されるので、devcontainer.jsonを開いて、user設定がデフォルトはvscodeとなっているので、rootに変更する。
8 VSCodeのスタータスバーの左下にある緑のアイテムからRebuild Containerを選択して設定を反映させる。
・この操作を行った後に再度コマンドを入力しましたが、同じエラーが出てしまいます。
・ファイルの権限がないのかと考えましたが、恐らく権限はあると思われます。
senseiy@senseIY-wsl:~/Practice/Rea-pra/memo-jackA-react$ ls -la 合計 20 drwxrwxrwx 3 senseiy senseiy 4096 5月 3 07:47 . drwxrwxr-x 5 senseiy senseiy 4096 5月 2 21:43 .. drwxr-xr-x 2 senseiy senseiy 4096 5月 3 07:47 .devcontainer -rwxrwxrwx 1 senseiy senseiy 45 5月 3 07:27 Dockerfile -rwxrwxrwx 1 senseiy senseiy 232 5月 3 07:28 docker-compose.yml senseiy@senseIY-wsl:~/Practice/Rea-pra/memo-jackA-react$ ls -la /home/senseiy/Practice/Rea-pra 合計 20 …(省略) drwxrwxrwx 3 senseiy senseiy 4096 5月 3 07:47 memo-jackA-react …
自分の考えなど
・なぜsudoをつけてもパーミッションエラーになってしまうのかよくわかりません。
https://shimi-dai.com/react-typescript-with-docker/
こちらのサイトと同じDockerfile docker-compose.ymlにしています。
ファイル
# Dockerfile FROM node:16-alpine3.15 WORKDIR /usr/src/app # docker-dompose.yml version: '3' services: node: build: context: . tty: true environment: - CHOKIDAR_USEPOLLING=true volumes: - ./:/usr/src/app command: sh -c "cd app && yarn start" ports: - "3000:3000"
なにかしらアドバイスがあればよろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。