はじめに
2020/01/20時点での最新安定版のrails開発環境の構築の記事がなかったので。
【Imagemagick対応】Dockerを利用して、Rails環境を作成
基本上記の記事のままです。
ただ、上記の記事はRuby2.6&Rails5.2.2で、そのままバージョンを書き換えるだけではうまく動作しなかったので、動作できるようにしたインストール資材を記載しておきます。
参考までに上記記事からの変更点も記載しておきます。
コンテナ立ち上げ以降は参考記事の手順のまま実施できます。
インストール資材
Dockerfile
FROM ruby:2.7
ENV RUNTIME_PACKAGES="linux-headers libxml2-dev libxslt-dev make gcc libc-dev nodejs tzdata postgresql-dev postgresql" \
DEV_PACKAGES="build-base curl-dev" \
HOME="/myapp"
WORKDIR $HOME
# Counter Measure to Error:"Autoprefixer doesn’t support Node v4.8.2. Update it"
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
&& apt-get install -y nodejs
# yarnパッケージ管理ツールインストール
RUN apt-get update && apt-get install -y curl apt-transport-https wget && \
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 -y yarn
RUN apt-get update && \
apt-get install -y default-mysql-client \
postgresql-client \
sqlite3 \
--no-install-recommends && \
rm -rf /var/lib/apt/lists/*
ADD Gemfile $HOME/Gemfile
ADD Gemfile.lock $HOME/Gemfile.lock
RUN bundle install
ADD ./ $HOME
COPY ./ $HOME
CMD ["rails", "server", "-b", "0.0.0.0"]
変更点①:ruby2.6⇒2.7
変更点②:mysql-client⇒default-mysql-client
mysql-client
はインストールできなくなっていたので、代わりにdefault-mysql-client
をインストールします。
mysql-client
がインストールできない理由は以下の記事が参考になります。
Circle CI で mysql-client が apt-get install できなくなってCI環境が壊れた話
変更点③:yarnを追加でインストール
エラーメッセージは控えていませんでしたが、参考記事のままインストールしようとしたらyarn
がないと怒られました。そのため、# yarnパッケージ管理ツールインストール
のところでインストールしています。
docker-compose.yml
version: '3'
services:
db:
container_name: db
image: postgres:latest
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: password
POSTGRES_INITDB_ARGS: "--encoding=UTF-8"
web:
container_name: app
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
変更点①:passwordありユーザーの設定
セキュリティ的にpasswordありユーザーがほしかったので、environment
のところでrootユーザにpasswordを付与しています。
Gemfile
source 'https://rubygems.org'
gem 'rails', '~> 6.0.2', '>= 6.0.2.1'
Imagemagickは使用しないのでGemfileから削除しています。
Gemfile.lock
こちらは空のまま。