LoginSignup
7
5

More than 5 years have passed since last update.

RailsじゃないRuby+RSpec環境をDockerでつくる

Posted at

はじめに

RailsではないRuby環境を作る機会があったため残しておく。

前提環境

vagrant 上の Ubuntu 15.10 をホストOSにして開発します。
本エントリーは以下の環境が構築されている前提で記載します。

  • 物理マシンOS
    • Windows 10
  • 仮想マシンOS
    • Ubuntu 15.10 <- ここにdockerをインストール

Dockerfile 作成

イメージは公式のrubyイメージを利用しました。
/tmpbundle 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 作成

GemfileGemfile.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
7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5