零からの

ゆるーく綴るブログ

Ruby on Jets 環境構築メモ

Ruby on Jetsを検証することになったので、まずは環境構築までをやってみた。

Docker環境の構築

Dockerfileとdocker-compose.ymlをそれぞれ以下のように作成する。

FROM ruby:2.5-alpine

ENV APP_HOME=/app
WORKDIR $APP_HOME
version: '3'
services:
  app:
    build:
      context: .
      dockerfile: ./docker/ruby/Dockerfile
    volumes:
      - .:/app

Dockerイメージをビルドし、作成したイメージからコンテナを実行する。 rubyのバージョンが確認できる。

docker-compose build
docker-compose run --rm app ruby -v
ruby 2.5.7p206 (2019-10-01 revision 67816) [x86_64-linux-musl]

Gemfile作成

Bundlerを初期化し、Gemfileを作成する。

docker-compose run --rm app bundle init

Jetsのインストール

Gemfileを更新する。

# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem 'jets', '~> 2.3', '>= 2.3.11'

jetsをインストールするためDockerfileを修正する。

FROM ruby:2.5-alpine

ENV APP_HOME=/app
WORKDIR $APP_HOME

COPY ./Gemfile* $APP_HOME
RUN bundle install
docker-compose build

An error occurred while installing nokogiri (1.10.7), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.10.7' --source 'https://rubygems.org/'` succeeds before bundling.

alpineイメージの場合、nokogiriのインストールで失敗する(らしい)のでDockerfileを修正する。

FROM ruby:2.5-alpine

RUN apk update && \
    apk add --no-cache build-base libxml2-dev libxslt-dev

ENV APP_HOME=/app
WORKDIR $APP_HOME

COPY ./Gemfile $APP_HOME
RUN bundle install

Dockerイメージをビルドし、作成したイメージからコンテナを実行する。 jetsのバージョンが確認できる。

docker-compose build
docker-compose run --rm app bundle exec jets -v
2.3.11