はじめに
こんにちは、イエノカドです。
最近プログラミングスクールや有名自社開発企業で
よく扱われているRubyのフレームワーク「Ruby On Rails」を
最速でマスターするための第一歩として
Docker for Macを利用して構築する手順を紹介したいと思います。
開発環境の構築で挫折する人は少ないです。
かく言う僕も開発環境の構築で何度も挫折しました。
でも時間をかけてゆっくり内容を把握すれば手順としては
簡単なので是非チャレンジしてみてください。
Ruby On Railsの設定手順
1. Docker for Mac のインストール
Docker上にRuby On Railsを設定していくため、
上記URLからあらかじめDocker for Macをインストールしておきましょう。
2. 空のワークスペースの作成
workspaceというフォルダを作成する(既にある場合はしなくてOK)
$ mkdir ~/workspace
workspaceフォルダ配下にdocker-railsフォルダを作成する
$ mkdir ~/workspace/docker-rails
docker-railsフォルダに移動する
$ cd ~/workspace/docker-rails
3. Dockerfileを作成
docker-railsフォルダ配下にDockerfileという名前でファイルを作成し、
以下のコードをコピペしてください。
# syntax=docker/dockerfile:1
FROM ruby:2.6
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY ../compose /myapp
# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
# Configure the main process to run when running the image
CMD ["rails", "server", "-b", "0.0.0.0"]
4. Gemfileを作成
docker-railsフォルダ配下にGemfileという名前でファイルを作成し、
以下のコードをコピペしてください。
source 'https://rubygems.org'
gem 'rails', '~>5'
5. Gemfile.lockを作成
以下のコマンドでdocker-railsフォルダ配下に空のGemfile.lockファイルを作成します。
$ touch ~/workspace/docker-rails/Gemfile.lock
6. entrypoint.shを作成
docker-railsフォルダ配下にentrypoint.shという名前でファイルを作成し、
以下のコードをコピペしてください。
#!/bin/bash
set -e
# Remove a potentially pre-existing server.pid for Rails.
rm -f /myapp/tmp/pids/server.pid
# Then exec the container's main process (what's set as CMD in the Dockerfile).
exec "$@"
(railsのコンテナを再起動するたびに実行させるコマンドを記述しています。)
5. docker-compose.ymlを作成
docker-railsフォルダ配下にdocker-compose.ymlという名前でファイルを作成し、
以下のコードをコピペしてください。
version: "3.9"
services:
db:
image: postgres
volumes:
- ./tmp/db:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: password
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
6. Ruby On Railsのプロジェクトを作成
$ docker-compose run --no-deps web rails new . --force --database=postgresql
上記を実行するとGemfileが更新されるので以下ビルドコマンドを実行します。
$ docker-compose build
7. データベースの接続
プロジェクトを作成してできた、configフォルダ配下のdatabase.ymlの変更をします。


上記画像のように変更します。
default: &default
adapter: postgresql
encoding: unicode
上記記述がある箇所を探して、以下追加の記述を追記してください。
default: &default
adapter: postgresql
encoding: unicode
# 以下追加
host: db
username: postgres
password: password
8. Railsプロジェクトを立ち上げる
$ docker-compose up -d
9. 初期設定画面にアクセス
上記にアクセスすると、下記のような画面表示がされればOKです。


お疲れ様でした!
参考
https://docs.docker.com/samples/rails/
今回、基本的には上記に基づいて環境構築をしてみました。
また、以下にRuby、Railsに関するおすすめの本を掲載しておきます。
最後に
これで、流行りのRuby On Railsを動かせます。
ここからはRailsを利用して学習していくことになるかと思いますが、
まずはRubyを知った方が効率が良いので、
ProgateでRubyの基本を学んだのちに、
Ruby on Rails チュートリアルでフレームワークの特性を学んでいくのが良いかと思います。
そこまでクリアしたら、ポートフォリオになるアプリケーション開発にいきなり着手するのも面白いと思います。
エンジニアライフは楽しいですね。
では、また会いましょう。
コメント