README

We always need easy and fast database env setting for rails docker-postgres gem builded for develop database enviroment

Require

  • macOS or linux (Not support window, using mkdir)
  • Installed Docker
  • database.yml in rails project (needed database, username, password, port)

Install

Install in Gemfile

Gemfile

gem 'docker-postgres-rails', :git => "git://github.com/x1wins/docker-postgres-rails.git"

Or Source download and gem build

$ gem build docker-postgres-rails.gemspec
Successfully built RubyGem
Name: docker-postgres-rails
Version: 0.0.0
File: docker-postgres-rails-0.0.0.gem
$ gem install docker-postgres-rails
Successfully installed docker-postgres-rails-0.0.0
Parsing documentation for docker-postgres-rails-0.0.0
Done installing documentation for docker-postgres-rails after 0 seconds
1 gem installed

Added docker-postgres-rails in Gemfile

gem 'docker-postgres-rails'

Uninstall gem

$ gem uninstall docker-postgres-rails
Successfully uninstalled docker-postgres-rails-0.0.0

Usage

Step 0

rails generate docker_pg
This will create:
  lib/tasks/docker_pg.rake

Step 1

You must set database.yml

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: docker_postgres_rails_development
  username: docker_postgres_rails
  password: mysecretpassword
  host: localhost
  port: 5432

test:
  <<: *default
  database: docker_postgres_rails_test

production:
  <<: *default
  database: docker_postgres_rails_production
  username: docker_postgres_rails
  password: <%= ENV['DOCKER_POSTGRES_RAILS_DATABASE_PASSWORD'] %>

Step 2

This command create database volume path

$ rake docker:pg:init

Step 3

Runing dockerized PostgreSQL

$ rake docker:pg:run
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
4ec621c7914b        postgres            "docker-entrypoint.s…"   17 minutes ago      Up 17 minutes       0.0.0.0:5432->5432/tcp   docker_postgres_rails_development

It's all