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だと、気軽に環境を作成できるので良いですね!

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

blog-page_footer_336




blog-page_footer_336




-Server
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

[WordPressのSEO対策]PageSpeed Insightsのスコアを上げる方法

1 はじめに2 現状のスコアと改善点を確認する3 ブラウザキャッシュを活用する4 圧縮を有効にする5 HTML/CCS/JavaScriptを縮小する6 画像を最適化する7 レンダリングをブロックして ...

aws

MyCoachの本番環境をAWS上に構築する 〜ネットワーク編〜

1 はじめに1.1 関連記事2 MyCoachのネットワーク構成3 VPCとは3.1 設定する項目4 VPCの設定5 インターネットゲートウェイの設定6 サブネットの設定6.1 公開ネットワークの設定 ...

InnoDBでauto_incrementの値が戻る?

はじめに 花粉症が辛い季節になりました。 花粉症も困りますが、本日はMySQL関連で困って調べたことをまとめたいと思います。 タイトルですが、InnoDBだとDBを再起動した際にauto_increm ...

laravel logo

Laravel Cashierでサブスクリプションを実装する

1 はじめに2 Stripeの準備3 Laravel Cachierの初期設定3.1 インストール3.2 APIキーの設定3.3 Userモデルへの実装4 支払い方法の登録4.1 支払い方法の登録5 ...

aws

Amazon EC2を使ってみる

1 はじめに2 事前準備2.1 ルートアカウントのMFAを有効化2.2 個々のIAMユーザの作成(及びグループの作成)2.3 IAMユーザのMFAを有効化2.4 IAMパスワードポリシーの適用3 EC ...

フォロー

blog-page_side_responsive

2018年1月
 123456
78910111213
14151617181920
21222324252627
28293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。