質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

解決済

create-react-app時に Permission deniedエラーが出てしまうので解決したい

senseIY
senseIY

総合スコア187

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

1回答

0評価

0クリップ

288閲覧

投稿2022/05/02 23:28

解決したいこと

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"

なにかしらアドバイスがあればよろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです