Server

DockerでRuby2.5、Rails5.2betaの環境をつくる【Compose file v3】

投稿日:2018年1月5日 更新日:

はじめに

明けましておめでとうございます。
年末年始休みに、少しRuby 2.5.0、Rails 5.2 beta2を触りました。
その際にDockerを使って環境を作成したので、そちらに関して記載したいと思います。

過去の記事とほぼ同様なのですが、Quick Startの記事をみていて、Docker Composeがバージョン3になったようなので、極力その書き方で行きたいと思います。

Compose file version 3 reference

今まで書いたDockerの記事

Dockerのインストール

Dockerをインストールします。
Macをお使いの方はDocker For Macが良いかと思います。

ファイルの準備

まずはプロジェクトディレクトリを作成します。

Gemfile

Gemfileを作成します。
Docker起動前には、railsだけあれば大丈夫です。

Gemfile.lock

Dockerfile

今回使用するイメージ用のDockerfileを作成します。
Rails用のコンテナと、MySQL用のコンテナを作成します。

Ruby(Rails)

個人的に、Docker用の設定ファイルを納めたディレクトリを作成しておいた方が管理が楽だと思うので、ディレクトリを切っておきます。

DockerfileはQuickstart: Compose and Railsの通りに作成します。

MySQL

MySQLも同様にdockerディレクトリの中に専用のディレクトリを作成しておきます。

Dockerfileは下記のように作成します。
言語設定用のファイルは別で作成しておき、起動時にコンテナに追加します。

docker-compose.yml

複数コンテナを操作するためのdocker-composeを使用します。

commandの部分

コンテナ起動時に実行するcommandですが、チュートリアルではrails serverだけです。
ただ、Dockerを不十分な形で終了すると、server.pidが残ってしまい、次回起動時にそれを削除する必要があります。
stop-the-application

そのため、起動時にもしserver.pidがあれば削除するようcommandを追加しています。

env_fileの部分

MySQLのコンテナではパスワードの環境変数などを指定してあげないと起動しません。
そのため、MySQLの環境変数を設定したファイルを読み込みます。

env_fileを指定することで、ファイルで指定した内容を環境変数として設定できます。
ファイルは、docker/mysql以下に作成しておきます。

起動

下記のコマンドで新しいプロジェクトを作成します。

これでプロジェクトが作成されたと思います。

下記のコマンドで起動します。
--buildオプションをつけると、起動前にビルドしてくれます。)

-dでバックグラウンドで実行できますが、Railsでprintデバッグしたい場合などはログを表示させておいた方が良いかと思います。

DBの準備

起動しても、DBを作成していなければエラーになってしまいます。

まずはdatabase.ymlを修正します。

先ほど、rootパスワードを設定したので、その値にします。
またhostは、docker-composeで指定した名前にすることで、よしなに判断してくれます。

この後は、DBの作成と初期マイグレーションを実行しておきます。
私もしっかりRails 5.2を確認していないのですが、初期マイグレーションファイルとして、ActiveStrage用のテーブルがあるようです。

ここまで実行すればRailsのウェルカムページが表示されるのではないでしょうか?

さいごに

新年初めのブログということと、地味にQuick Startが更新されていたので改めてまとめてみました。
やっぱりDockerだと、気軽に環境を作成できるので良いですね!

それでは本年もよろしくお願いします!

page_footer_300rect




page_footer_300rect




-Server
-

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

Docker上でTensorFlowのチュートリアルをやってみた

1 はじめに1.1 環境2 TensorFlowのコンテナを起動する3 チュートリアルをやってみた3.1 ソースコード4 さいごに はじめに こんにちは、最近個人的な勉強でPython、ディープラーニ ...

Conohaのサーバーを借りて、CentOS+MySQL+nginxの環境を作ってみた。

1 はじめに1.1 環境2 Conohaでサーバーをレンタル3 サーバーの初期設定3.1 サーバーにrootユーザーでログイン3.2 ユーザー作成3.3 SSHログインを許可3.4 秘密鍵を生成3.5 ...

DockerでLAMP環境をつくり、LimeSurveyを動かしてみた

1 はじめに2 Docker関連ファイルの作成2.1 docker-compose.yml2.2 MySQL2.2.1 個人的に詰まったこと2.3 PHP3 Docker起動4 リポジトリを作りました ...

WordPressとRailsアプリケーションを相乗りさせた時の話

1 はじめに1.1 前提条件2 サブドメインを設定する3 Nginxの設定3.1 ステージング環境用の設定3.2 ステージング環境の設定を読み込ませる3.3 Nginxの再起動4 SSL化する4.1 ...

MySQL 5.7 オプティマイザの改善〜UNION ALL〜

1 はじめに2 「UNION」と「UNION ALL」の違い3 MySQL 5.7での「UNION ALL」の改善とは4 MySQL 5.7での実行計画4.1 UNION ALL実行計画4.2 UNI ...

フォロー

follow us in feedly

AppLink

英語

page_side_300rect

2018年1月
« 12月 2月 »
 123456
78910111213
14151617181920
21222324252627
28293031 

アプリ情報

目標を達成したい方を応援する、TODOアプリもリリースしております。 下記のアイコンから無料でダウンロードできます。

Web版MyCoach

私たちはより広い方にコーチングを知ってもらいたいと考えています。 下記のサイトにて、コーチの方々を紹介しておりますので、よろしければご覧ください。