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

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

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

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

Docker

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

Q&A

解決済

1回答

2287閲覧

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

senseIY

総合スコア281

Windows

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

Docker

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

0グッド

0クリップ

投稿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"

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

dockerの代わりにcodesandboxを使用することにしました。

投稿2022/05/05 01:23

senseIY

総合スコア281

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問