docker-compose run web rails dbconsoleができない問題の対処

docker-compose run web rails dbconsoleができない問題の対処

当ページのリンクには広告が含まれています。



  • タイトルに記載したコマンドを実行したらうまくいかなかったので備忘録的にまとめます。

✓目次

環境

Windows10 pro
Ruby 2.4.5
MySQLの5.7


問題(エラー内容)

  • 以下のようなエラーが発生
terminal
1
2
3
4
$ docker-compose run web rails dbconsole
Starting b74e972d_db_1 ... done
Couldn't find database client: mysql, mysql5. Check your $PATH and try again.

エラーの原因

  • ローカルにMySQLアカウントがないからと想定

対処

エラーが発生する場合のdockerfileは以下の通り

dockerfile
1
2
3
4
5
6
7
8
9
FROM ruby:2.4.5
RUN apt-get update -qq && apt-get install -y build-essential nodejs
RUN mkdir /app
WORKDIR /app
COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock
RUN bundle install
COPY . /app


以下のように修正


dockerfile
1
2
3
4
5
6
7
8
9
FROM ruby:2.4.5
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev postgresql-client nodejs
RUN mkdir /app
WORKDIR /app
COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock
RUN bundle install
COPY . /app


buildを実施


terminal
1
$ docker-compose build

同じエラーが発生。
dockerfileを以下の通り、修正する。

Dockerfile
1
2
3
4
5
6
7
8
9
FROM ruby:2.4.5
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs mysql-client
RUN mkdir /app
WORKDIR /app
COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock
RUN bundle install
COPY . /app


再度buildを実施


terminal
1
$ docker-compose build

成功したので、dbconsoleを実行

terminal
1
$ docker-compose run web rails dbconsole

パスワードを聞かれた場合は、dokcer-compose.ymlに記載されている、MYSQL_ROOT_PASSWORD: に記述されているパスワードを入力。

これで成功するはず。

参考記事

Dockerを専門に学ぶためのオンライン学習講座

  • Dockerに特化した学習は以下のUdemy講座がおすすめです。質、ボリューム共に豊富です。(私はこの講座を終えるのに2か月かかりましたが、非常に詳しく分かりやすくまとめられた講座です。)

ゼロからはじめる Dockerによるアプリケーション実行環境構築

  • Dockerの基礎や復習に加え、コンテナオーケストレーションを行うKubernetesについて学びたい場合は以下の講座がおすすめです。質、ボリュームもちょうどよく、Kubernetesの各種リソースの解説に加え、Web3層構造(MongoDB, Node.js, Nginx)の環境を構築をするので、実践的なスキルが身につくと思います。

Docker + Kubernetes で構築する Webアプリケーション 実践講座

コメント