
学習時間 | 4時間 |
---|---|
難易度 | 中級 |
質問投稿 | 可 |
ホスト環境で動いているRailsアプリケーションをDockerに移行しよう!
既存のRailsアプリケーションをDockerで動くようにするまでを学び、ミドルウェアの変更や破棄などを簡単に行えるDockerの基礎スキルを身に付ける。
『簡単・高速・自動化』の3つを兼ね備えたDockerの基礎をハンズオンで学ぶ
Dockerはコンテナ仮想化を用いてアプリケーションを開発・配置・実行するためのオープンソースソフトウェアです。
具体的には、以下のような魅力があります。
① 開発環境を簡単に構築できる
Dockerでは、Docker HubというDocker Image を公開しているサービスがあり、そのDocker HubからRubyやMySQL等のDockerイメージをダウンロードして、コンテナを起動することで、いとも簡単にRailsとMySQLでの開発環境を用意することができます。
※Docker Imageとは、Dockerコンテナを立ち上げるために必要なもので、コンテナに必要なファイル郡をひとまとめにしたものとなります。
② 高速でデプロイが可能に
ローカル環境と本番環境で同じ構成のコンテナを使用することにより、環境が統一され、デプロイ後に差異がないかを確認する作業や、テスト等の時間を短縮でき、結果的にデプロイを加速させます。
③ インフラ構築をコードで自動化
Dockerではどんなサーバー構成にするか、インストールするライブラリ等はなにかをDockerfileにコードベースで定義することができます。そのため、人的作業やローカル環境と本番環境での差異によって起こるミスをなくし、つまづきやすい環境構築をコマンド一つで実行可能にします。
既存のRailsアプリケーションをDockerで動くようにする実装を通してDockerの基礎スキルを身につける
そこで、本教材はDocker初学者向けに、Dockerのチュートリアルを終えた次のステップとして、ホスト環境で動いているRuby on Rails環境をDockerに移すという内容になっております。その際、Dockerコマンドの裏側でどんな処理が行われているのかを、実際にDockerfileを作成しながら見ていくことで、Dockerの基礎的な部分の理解を深めていきます。
また本教材では、Ruby on Rails環境を対象としておりますが、コンテナ技術ですので一部を変更するだけでLaravelやExpress等でも使えるようになっております。 本教材を経てレベルアップした際には、ぜひそちらにもチャレンジしてみるとよいでしょう。
学習内容
- Dockerの基礎スキルを学ぶ
- Dockerfileを利用したRubyコンテナ環境の実装を行う
- Dockerfileを利用したMySQLコンテナ環境の実装を行う
- docker-composeを用いてそれぞれのコンテナを1つのアプリケーションとして立ち上げる
- MySQLコンテナ環境をPostgreSQL環境に変更する実装を行う
本教材における目標物
本教材では、1から自分でMySQLとRailsの2つのDockerコンテナを立ち上げます。画像では、上がMySQLコンテナで下がRailsコンテナとなっています。また、教材内では、最終的にMySQLコンテナ環境をPostgreSQL環境に変更する実装まで行っております。
本教材の対象者
- 既存のRailsアプリケーションをDocker環境にしてみたい方
- Dockerを触る機会を得たい方
受講における必要条件
- Ruby on Railsアプリケーションを作成したことがある
- 簡単なコマンドラインの知識(mkdirやtouchなど)
学ばないこと
本教材ではRuby on Railsに関する内容には触れておりません。あくまでDockerでアプリケーションを動かすことを目的としております。
本教材の対応バージョン
基本的にはどのようなバージョンでも可能ですが、本教材で提供しているサンプルアプリケーションではRails5系を利用しております。
本教材で質問対応可能なOSや環境
- Mac OS
カリキュラム
- 1-1 Ruby環境をDockerfileで作成してみよう
- 2-1 MySQL環境をDockerfileで作成してみよう