Ruby on Rails 5.1 用のDockerのベースイメージを作った
Ruby on Rails 5.1からは、Rubyだけではなく、webpackerとか使う場合にはnpm環境も必要となる。
毎回自前でDockerfileでnpm環境をインストールするのも時間がかかるので、その辺をひとまとめにしたDockerイメージを作りました。
https://hub.docker.com/r/gendosu/ruby-for-rails-51/
使い方は
Rails5.1のプロジェクトに
Dockerfileを以下のように作成
# 本体 # # VERSION 0.0.1 FROM gendosu/ruby-for-rails-51:2.3 MAINTAINER Gen Takahashi "gendosu@gmail.com" ADD . /products WORKDIR /products RUN yarn RUN bundle RUN chmod a+x /products/entrypoint.sh RUN ./entrypoint.sh ENTRYPOINT ["./entrypoint.sh"]
docker-compose.yml
も以下のように作成
version: "2"
volumes:
postgres:
services:
#
# メインコンテナ
#
main:
build: .
image: example
depends_on:
- postgres
volumes:
- .:/products
- postgres:/var/run/postgresql
ports:
- "3000:3000"
environment:
RAILS_ENV: development
command: rails s -b 0.0.0.0 -p 3000
js:
build: .
image: example
volumes:
- .:/products
ports:
- "8080:8080"
environment:
RAILS_ENV: development
command: bin/webpack-dev-server --host 0.0.0.0
#
# PostgreSQLのコンテナ
#
postgres:
image: postgres:9.3.14
environment:
- "POSTGRES_USER=postgres"
volumes:
- postgres:/var/run/postgresql
- .:/products
ports:
- "5432:5432"
このDockerイメージを使用すれば、Ruby on Railsとyarn(npm)が即実行できる状態になります。
ビルド時に走るのはyarnとbundleだけなので、比較的短時間で環境の構築が可能となります。



