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

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

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

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

Docker

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

Q&A

解決済

1回答

2548閲覧

dockerのpermission deniedエラーを解決したい

senseIY

総合スコア281

Windows

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

Docker

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

0グッド

0クリップ

投稿2022/03/06 06:32

編集2022/03/06 09:12

解決したいこと

dockerのpermission deniedエラーを解決したいです。
プログラミング入門者です。ポートフォリオにdockerを使ってみようと思ったので2日ほど前からyoutubeの動画を参考にさせて頂き、学習しています。ですが、途中で

failed to solve: rpc error: code = Unknown desc = error from sender: open /home/senseiy/Documents/rails_docker/src/db/mysql_data/#innodb_temp: permission denied

のようなエラーが出てしまい、ここで詰まってしまいました。
環境 windows11のwsl2を使用しています。wsl2ではubuntu20.04を使用しています。

発生している問題・エラー

senseiy@senseIY:~/Documents/rails_docker$ docker-compose run web rails new . --force --database=mysql [+] Running 13/13 ⠿ db Pulled 66.9s ⠿ 15115158dd02 Pull complete 7.3s ⠿ d733f6778b18 Pull complete 7.4s ⠿ 1cc7a6c74a04 Pull complete 7.8s ⠿ c4364028a805 Pull complete 8.0s ⠿ 82887163f0f6 Pull complete 8.1s ⠿ 097bfae26e7a Pull complete 9.8s ⠿ e1b044d6a24f Pull complete 9.9s ⠿ cd2978bd4d12 Pull complete 10.0s ⠿ 28bce5cc1677 Pull complete 19.8s ⠿ 907b6d695760 Pull complete 19.8s ⠿ c5049403458b Pull complete 19.9s ⠿ f360718d6f4e Pull complete 20.0s [+] Running 2/2 ⠿ Network rails_docker_default Created 0.8s ⠿ Container rails_docker-db-1 Created 0.5s [+] Running 1/1 ⠿ Container rails_docker-db-1 Started 1.6s [+] Building 73.8s (6/9) => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 396B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/ruby:2.7 73.2s => CACHED [1/5] FROM docker.io/library/ruby:2.7@sha256:490f9343c654ce108a1bd34b4896e531135ffd47b9a25081948770ab9 0.0s => ERROR [internal] load build context 0.0s => => transferring context: 324B 0.0s => CANCELED [2/5] RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && echo "deb https:/ 0.5s ------ > [internal] load build context: ------ failed to solve: rpc error: code = Unknown desc = error from sender: open /home/senseiy/Documents/rails_docker/src/db/mysql_data/#innodb_temp: permission denied

使用したファイル

Dockerfile

#Dockerfile FROM ruby:2.7 RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ && apt-get update -qq \ && apt-get install -y nodejs yarn WORKDIR /app COPY ./src /app RUN bundle config --local set path 'vendor/bundle' \ && bundle install

Gemfile

source 'https://rubygems.org' gem 'rails', '~> 6.1.0'

docker-compose.yml

version: '3' services: db: image: mysql:8.0 command: --default-authentication-plugin=mysql_native_password volumes: - ./src/db/mysql_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - ./src:/app ports: - "3000:3000" depends_on: - db

試したことと考察など

・スペルミスをチェックしたが問題はなさそうだった。
https://teratail.com/questions/356474
この方の記事を参考にDockerfileを ./build/web/Dockerfile に移動し、docker-compose.yml内のweb:を

web: build: ./build/web

へ変更して更にDockerfileのCOPY部分を削除してから実行すると

senseiy@senseIY:~/Documents/rails_docker$ docker-compose run web rails new . --force --database=mysql [+] Running 1/0 ⠿ Container rails_docker-db-1 Running 0.0s [+] Building 43.3s (7/7) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 399B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/ruby:2.7 41.3s => [1/4] FROM docker.io/library/ruby:2.7@sha256:490f9343c654ce108a1bd34b4896e531135 0.0s => CACHED [2/4] RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add 0.0s => CACHED [3/4] WORKDIR /app 0.0s => ERROR [4/4] RUN bundle config --local set path 'vendor/bundle' && bundle ins 1.9s ------ > [4/4] RUN bundle config --local set path 'vendor/bundle' && bundle install: #7 1.857 Could not locate Gemfile ------ failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c bundle config --local set path 'vendor/bundle' && bundle install]: exit code: 10

のようなエラーが出てきてしまった。また、このエラーをググっても解決につながりそうな記事が見当たらなかった。Gemfileを見つけられないようだがどうすればいいかわからなくなったため、とりあえず別の方法を試すことにした。また、この方はERROR: Service 'web' failed to build : Build failedのエラーが出ていたが自分の場合はなぜか出ていない。恐らくだがファイルを見る限り私と同じ処理をしているはず。
・権限をつけてみることにしたので以下のコマンドを実行するも効果はなく、エラー文に変わりはなかった。

#もしかすると意味ないことしてしまっているかもしれません senseiy@senseIY:~/Documents/rails_docker$ pwd /home/senseiy/Documents/rails_docker senseiy@senseIY:~/Documents/rails_docker$ chmod 777 /home/senseiy/Documents/rails_docker

・プログラミング入門者のため認識が間違っている部分があると思います。何かしらアドバイスがあればよろしくお願いいたします。

追記 
ローカルとコンテナ内でユーザー権限の不一致が起きている可能性があるとのご指摘を頂いたので調べていただきました。
https://tech-blog.rakus.co.jp/entry/20200826/docker
こちらの記事を参考に進めさせていただきました。
まず、1つめのマウントしたボリュームの権限を書き換えるについてですが。

senseiy@senseIY:~/Documents/rails_docker$ chmod 777 src senseiy@senseIY:~/Documents/rails_docker$ docker-compose run web rails new . --force --database=mysql [+] Running 1/0 ⠿ Container rails_docker-db-1 Running 0.0s [+] Building 41.4s (7/9) => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 397B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/ruby:2.7 41.3s => [1/5] FROM docker.io/library/ruby:2.7@sha256:490f9343c654ce108a1bd34b4896e531135 0.0s => ERROR [internal] load build context 0.0s => => transferring context: 324B 0.0s => CACHED [2/5] RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add 0.0s => CACHED [3/5] WORKDIR /app 0.0s ------ > [internal] load build context: ------ failed to solve: rpc error: code = Unknown desc = error from sender: open /home/senseiy/Documents/rails_docker/src/db/mysql_data/#innodb_temp: permission denied

のように特にエラーは変わりませんでした。
2つ目のもやろうとしたのですが、どうやらコンテナ内のidを調べる必要があるみたいです。私の場合初期設定でエラーが出ている(まだコンテナをつくっていないので、docker-compose exec コンテナ名 bashで中に入ってid確認できない。また、3つ目は途中でbuildする必要がある)ためどうすればいいかわからなくなり、また詰まってしまいました。何かしらアドバイスがあればよろしくお願いいたします。

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

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

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

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

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

Supernove

2022/03/06 06:51

`src`ディレクトリをマウントしていると思うので、`chmod 777 src`でどうなるか確認してもらえますか?
senseIY

2022/03/06 07:55

回答していただきありがとうございます。教えて頂いたコマンドを実行しましたが、エラーの表示は変わりませんでした。 ``` senseiy@senseIY:~/Documents/rails_docker$ chmod 777 src senseiy@senseIY:~/Documents/rails_docker$ docker-compose run web rails new . --force --database=mysql [+] Running 1/0 ⠿ Container rails_docker-db-1 Running 0.0s [+] Building 41.4s (7/9) => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 397B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/ruby:2.7 41.3s => [1/5] FROM docker.io/library/ruby:2.7@sha256:490f9343c654ce108a1bd34b4896e531135 0.0s => ERROR [internal] load build context 0.0s => => transferring context: 324B 0.0s => CACHED [2/5] RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add 0.0s => CACHED [3/5] WORKDIR /app 0.0s ------ > [internal] load build context: ------ failed to solve: rpc error: code = Unknown desc = error from sender: open /home/senseiy/Documents/rails_docker/src/db/mysql_data/#innodb_temp: permission denied ```
senseIY

2022/03/06 09:52 編集

教えていただきましたコマンドを実行した後にもう一度上記の3つすべてのファイルを作り直したところ、うまく動きました!私なりの考察ですが、どうやら私の場合は変に途中までうまくいっており、その時に出来たファイル構造が何かしら問題を引き起こしていたのではと考えました(なぜかdbファイルだけ途中まで出来ていた)。アドバイスありがとうございました。
guest

回答1

0

自己解決

chmod -R 777 src
上記のコマンドを実行(私の場合はなぜか-Rなし+すべてのファイル作りなおしで動きました)
で解決できました。私のようなエラーで詰まっている方の参考になれば幸いです。アドバイスをして頂きありがとうございました。

投稿2022/03/06 10:03

senseIY

総合スコア281

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問