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

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

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

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

128閲覧

Couldn't find database client: mysql, mysql5. Check your $PATH and try again.エラーが出ます。

yacco

総合スコア2

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2024/03/12 13:29

実現したいこと

掲示板を作成しています。
掲示板作成のページで「登録」ボタンをおしたところフラッシュメッセージも画面遷移も起こらなかったので、dbを確認するべく「docker compose run web rails dbconsole」コマンドを実行しました。結果、タイトルのエラーが出てしまいました。

docker.fileを確認したところ、確かにmysqlについて記述していなかったので追記しましたが、「docker compose build」を行なってもエラーが出てしまい解決しませんでした。

発生している問題・分からないこと

Couldn't find database client: mysql, mysql5. Check your $PATH and try again.エラーの解決記事を色々調べましたが、改善しませんでした。

該当のソースコード

% docker compose run web bin/rails dbconsole [+] Creating 2/0 ✔ Container 43689_yaccolyn_basic_rails_basic-chrome-1 Running 0.0s ✔ Container 43689_yaccolyn_basic_rails_basic-db-1 Running 0.0s Couldn't find database client: mysql, mysql5. Check your $PATH and try again. irb(main):006:0> exit
% docker compose build [+] Building 7.7s (7/16) docker:desktop-linux => [web internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 973B 0.0s => [web internal] load metadata for docker.io/library/ruby:3.1.4 1.6s => [web auth] library/ruby:pull token for registry-1.docker.io 0.0s => [web internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => CACHED [web 1/11] FROM docker.io/library/ruby:3.1.4@sha256:3c24464780a402a8b9ad6215848a025bb7 0.0s => [web internal] load build context 0.5s => => transferring context: 2.65MB 0.5s => ERROR [web 2/11] RUN apt-get update -qq && apt-get install -y ca-certificates curl gnupg && m 6.0s ------ > [web 2/11] RUN apt-get update -qq && apt-get install -y ca-certificates curl gnupg && mkdir -p /etc/apt/keyrings && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && NODE_MAJOR=19 && wget --quiet -O - /tmp/pubkey.gpg 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 build-essential libpq-dev nodejs yarn mysql-client: 3.634 Reading package lists... 3.891 Building dependency tree... 3.957 Reading state information... 4.043 ca-certificates is already the newest version (20230311). 4.043 curl is already the newest version (7.88.1-10+deb12u5). 4.043 gnupg is already the newest version (2.2.40-1.1). 4.043 0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded. 4.179 Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). 4.549 OK 4.553 deb https://dl.yarnpkg.com/debian/ stable main 5.625 W: https://dl.yarnpkg.com/debian/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. 5.628 Reading package lists... 5.870 Building dependency tree... 5.943 Reading state information... 5.946 Package mysql-client is not available, but is referred to by another package. 5.946 This may mean that the package is missing, has been obsoleted, or 5.946 is only available from another source 5.946 5.947 E: Package 'mysql-client' has no installation candidate ------ failed to solve: process "/bin/sh -c apt-get update -qq && apt-get install -y ca-certificates curl gnupg && mkdir -p /etc/apt/keyrings && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && NODE_MAJOR=19 && wget --quiet -O - /tmp/pubkey.gpg 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 build-essential libpq-dev nodejs yarn mysql-client" did not complete successfully: exit code: 100

docker.fileへの追記

1RUN apt-get update -qq \ 2&& apt-get install -y ca-certificates curl gnupg \ 3&& mkdir -p /etc/apt/keyrings \ 4&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ 5&& NODE_MAJOR=19 \ 6&& wget --quiet -O - /tmp/pubkey.gpg https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ 7&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ 8&& apt-get update -qq \ 9&& apt-get install -y build-essential libpq-dev nodejs yarn mysql-client #mysql-clientが追記部分です

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

https://qiita.com/taisei_code/items/2c691765c8ab6af53ead

他、同様の記事を参考にしましたが、docker buildができず解決しませんでした。

補足

特になし

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

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

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

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

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

melian

2024/03/12 13:46

mysql-client ではなく、default-mysql-client で試してみてください。
yacco

2024/03/12 14:19

コメントありがとうございます。上記参考に追記したところ問題が解決しました! ベストアンサーに選びたいので同じ内容を回答欄に投稿いただけますでしょうか?
melian

2024/03/12 14:27

解決してよかったです。回答欄に投稿しました。
guest

回答1

0

ベストアンサー

※ コメントから転記

docker.io/library/ruby:3.1.4 は Debian Linux がベースで、パッケージ名が mysql-client ではなく、default-mysql-client となっている様です。なので、default-mysql-client に変更して docker compose build を実行するとよいかと思います。

投稿2024/03/12 14:26

melian

総合スコア19816

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

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

yacco

2024/03/13 04:27

御指南のおかげで解決することができました!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問