こんにちは、Nanayakuです。
今回は、DockerでRails+PostgreSQLの環境構築を解説で作成した開発環境のdbをMySQLに変更してみたので、その解説をしていきます。
前回作成したファイルの変更点を主に紹介していきます。
目次
Dockerfile
新しく書き加えた「RUN gem install rails」は、いらなかったです。
インストールするデータベースをpostgresqlからmysqlに変更します。
Gemfile
Gemfileをpqからmysqlに変更しておかないと、
$ bdocker-compose build
や
$ docker-compose up
でエラーが出てしまいます。
config/database.yml
各設定の意味は以下の通りです。
- adapter・・・データベースの種類
- encoding・・・文字コード
- host・・・ホスト名
- username・・・ユーザー名
- password・・・パスワード
- pool・・・コネクションの上限数
docker-compose.yml
imageはDockerHubから選択します。
DockerHubからダウンロードされます。
今回は一番新しいバージョンを選択しました。
また、このページの下にドキュメントの書き方など書いてあるため、基本的にこのドキュメントをコピーします。
「volumes」はローカルのフォルダの位置とサーバーの位置を決めています。
volumes:
-ローカル : サーバー
この時、mysql-dataディレクトリを作成しておきます。
ホスト(使用しているMac本体)に保存しておく事で、mysqlのコンテナのデータが飛んでも安心です。
portsは、ローカルのポート(localhost:3000)とコンテナのポートを指定しています。
ports:
- "3000:3000"
再構築
上記の設定が完了したら、以下のコマンドを実行すればサーバーを起動できます。
$ docker-compose up --build
しかし、データベースはまだ作成されていないので、以下のコマンドを新しいターミナルを開いて実行します。
$ docker-compose run web rake db:create
参考資料
公式Dockerドキュメント(RailsとPostgreSQL)
最後に
今回作成したサンプルをGitHubにアップしています。
https://github.com/sabakan789/rails_sample
備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。