DockerでpostgreSQLを導入しrailsと連携する

docker

Gakuです。

前回までで、Dockerfileからrails環境を構築する方法を掲載してきました。

zwym-docker.and.railsDockerでrails環境を構築する
Gakuです。 前回の記事で、Dockerfileを作成しrubyコマンドを実行するところまで備忘録として残しました。 今回はそのDockerfil...

今回はpostgreSQLコンテナを作成し、railsコンテナと連携する方法を掲載したいと思います。

postgreSQLコンテナの準備

下記コマンドを実行することで、postgreSQLコンテナを作成できます。

docker pull postgres:9.5.4
docker run --name pos-con -p 5432:5432 -d postgres

簡単すぎる( ^ω^ )

railsコンテナの準備

下記コマンドを実行しrailsコンテナを作成します。

docker run -it -p 3000:3000 -v "$PWD":/usr/src/docker-rails-test --name railstest --link pos-con:pos-con  gaku/rails

(※–linkオプションが今回の肝です。)

で、仮想環境へアクセスされると思うので、対象のフォルダでrails newします。

rails new postgretest -d postgresql

これで準備完了です。

database.ymlを編集しpostgreSQLとコネクトする

railsのdatabase.ymlのdefault部分を下記のように編集し、postgreSQLコンテナとドッキングします。

default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  host: pos-con
  username: postgres

下記コマンドでエラーが出ずdatabaseが作成されれば完了です。

rails db:create

おわりに

案外簡単にpostgreSQLとrailsの連携が可能でした。
今までは単体で起動していた各コンテナを、まとめて立ち上げることが可能なdocker-composeなるものを触ってみようと思います。( ^ω^ )

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です