はじめに
RailsではないRuby環境を作る機会があったため残しておく。
前提環境
vagrant 上の Ubuntu 15.10 をホストOSにして開発します。
本エントリーは以下の環境が構築されている前提で記載します。
- 物理マシンOS
- Windows 10
- 仮想マシンOS
- Ubuntu 15.10 <- ここにdockerをインストール
Dockerfile 作成
イメージは公式のrubyイメージを利用しました。
/tmp
で bundle install
しているのはビルドの度に bundle install
しないためのハックです。
Dockerfile
FROM ruby:2.3.1
ENV LANG C.UTF-8
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
RUN gem install bundler
WORKDIR /tmp
ADD Gemfile Gemfile
ADD Gemfile.lock Gemfile.lock
RUN bundle install
ENV APP_HOME /myapp
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME
ADD . $APP_HOME
docker-compose.yml 作成
docker コマンドをシンプルにしたいため docker-compose
を利用します。
docker-compose.yml
version: "2"
services:
app:
build: .
volumes:
- .:/myapp
Gemfile 作成
Gemfile
と Gemfile.lock
を作成します。
Gemfile.lock
は空のままで良いです。
Gemfile
source "https://rubygems.org"
gem "rspec"
bundle install
docker-compose build
では Gemfile.lock
が更新されなかったため、コンテナにログインして bundle install
します。
コンテナにログイン。
$ docker-compose run app bash
bundle install
実行
# bundle install
RSpec 実行
以上で RSpec 環境ができました。
必要なファイルを作成し以下のコマンドで RSpec を実行できます。
$ docker-compose run app rspec -fd xxx_spec.rb