Docker Compose ile Rails Uygulama Geliştirme

Bu yazıda Docker Compose ile Rails/PostgreSQL uygulama geliştirmesi yapılacaktır.

Docker Compose Kurulumu

$ curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose

Uygulama için Dockerfile

Yeni bir çalışma dizini oluşturulur ve Dockerfile aşağıdaki gibi olmalıdır:

$ mkdir hello; cd hello
$ vim Dockerfile
FROM ruby:2.2.0
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
RUN mkdir /app
WORKDIR /app
ADD Gemfile /app/Gemfile
RUN bundle install
ADD . /app

Gemfile

Uygulamayı oluşturabilmek için gerekli minimum Gemfile aşağıdaki gibidir:

source 'https://rubygems.org'
gem 'rails', '4.2.0'

docker-compose.yml

Sonunda büyünün gerçekleştiği yerdeyiz. docker-compose.yml dosyası aşağıdaki gibidir:

db:
image: postgres
ports:
- "5432"

web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/app
ports:
- "3000:3000"
links:
- db

Rails Projesini Oluşturma

$ docker-compose run web rails new . --force --database=postgresql --skip-bundle

Oluşan Gemfile içerisindeki therubyracer gem’ini aktif hale getirin:

gem 'therubyracer', platforms: :ruby

İmajları Üret

$ docker-compose build

Veritabanını Ayarla

config/database.yml dosyasında ilgili yerler aşağıdaki şekilde değiştirilir.

default: &default
adapter: postgresql
encoding: unicode
pool: 5

development:
<<: *default
database: app_development
username: postgres
password:
host: db

test:
<<: *default
database: app_test

Uygulamayı Çalıştır

$ docker-compose up
web_1 | [2015-03-04 17:16:29] INFO  WEBrick 1.3.1
web_1 | [2015-03-04 17:16:29] INFO ruby 2.2.0 (2014-12-25) [x86_64-linux-gnu]
web_1 | [2015-03-04 17:16:29] INFO WEBrick::HTTPServer#start: pid=1 port=3000

Veritabanını Oluştur

$ docker-compose run web rake db:create
comments powered by Disqus