Dockerイメージのruby:2.4-onbuildでRails5.1を動かすためのDockerfileサンプル。
ruby-onbuildにyarnを追加する情報が少なそうだったので書き残す。
ポイント
- ruby公式イメージはdebianベース
- yarn向けにnodejsのバージョンが足りないため現在の最新版node9を追加
- yarnリポジトリを追加してインストール
※依存関係の用意が不足しているとbuildエラーE: Unable to locate package yarn
等が出る。
結果こんな感じ
Dockerfile
# WORKDIR = /usr/src/app
FROM ruby:2.4-onbuild
RUN bundle config --delete frozen \
&& apt-get update -qq && apt-get install -y build-essential \
&& curl -sL https://deb.nodesource.com/setup_9.x | bash - \
&& apt-get install -y nodejs \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update && apt-get install yarn \
&& rm -rf /var/lib/apt/lists/*
参照
Cannot install yarn from docker image ruby:2.3-slim · Issue #2888 · yarnpkg/yarn
https://github.com/yarnpkg/yarn/issues/2888
Installation | Yarn
https://yarnpkg.com/lang/en/docs/install/
Installing Node.js via package manager | Node.js
https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions