Server

MyCoachのDocker環境を変えてみた

投稿日:2017年10月20日 更新日:

はじめに

MyCoachのアプリがリリースされました。
アプリとは別で、Web版のMyCoachも作成しておりました。
実際のコンテンツの方はこちらをご覧ください。
(現在はまだβ期間として運用しております。)
https://mycoach.re-engines.com/top

こちらのWeb版はDocker環境を作って開発しておりました。
さて、今回はリリースを機に、開発中ではいじれなかったDocker環境を少し改修してみたので、そのことを記事にしたいと思います。

ただ既に多くの方がまとめてくださっている内容なので、そこまで目新しいものはないと思います。
今回は、既存プロジェクトに組み込むということで記載していきたいと思います。

なんで改修しようと思ったか

今までは、RailsコンテナとMySQLコンテナの2つで構築しておりました。
コンパクトな構成ですね!

ただ、実際に本番でRailsを運用するときには、リバースプロキシを立てることが多いかと思います。
Dockerでも複数コンテナを組み合わせることで、そのような挙動を構築することができるので、ちょっと試してみたかったこともあります。

構成

使用するコンテナ

下記の4つのコンテナを使用します。

  • Rails
  • MySQL
  • Nginx ← New!!
  • Datastore ← New!!

Datastoreというコンテナが出てきましたが、このコンテナで共通のファイルや保持しておきたいファイルを持たせておきます。

各Dockerfile

各項目に関してディレクトリを切ってDockerfileや関連ファイルを保存します。
こうすることで、各環境も管理しやすくなるかと思います。

ソースコードを載せると長くなってしまうので、リンクで失礼します。
https://github.com/naoki85/docker_rails/tree/master/docker

docker-compose.yml

複数コンテナを扱うときには docker-compose.yml が便利ですね。
これで、 docker-compose up コマンドでまとめて起動できます。
(ビルドするときには docker-compose build

そこまで複雑なことはしておりませんが、Railsのコンテナでは unicorn コマンドで起動しております。

また、 service: password を記述することで、後ほど database.rb にMySQLのパスワードを記述する際、 password と記述すれば解釈してくれます。
(普通にパスワードを記述しても大丈夫ですが。)

Unicorn

アプリケーションサーバーにはUnicornを使用します。
既にUnicornがインストールされていれば、Railsプロジェクト内に unicorn ディレクトリがあるかと思いますので、新しく development.rb を作成します(もしくは既にある場合は修正)。

database.rb

注意することは、 host で指定するDBは、 docker-compose.yml で指定した service 名になります。

起動してみる

ここまでで、Docker環境を起動して、 http://localhost にアクセスしてみます(またはNginxで指定したホスト)。
これで、今まで通りのプロジェクトが表示されていれば成功です。

今回は既存プロジェクトでやってみましたが、新規プロジェクトでも同様の設定ができるかと思います。

気になること

Docker起動直後にアクセスすると、Nginxのエラー画面が表示されることがあります。
ちょっと待って、再度アクセスすると問題なく表示されているので、Unicornのプロセスが起動していないのかな、と思います。

この辺りを含め、改善した箇所などがあれば、随時更新していきたいと思います。

さいごに

Docker良いですね。
私は最近PCを変えたのですが、プロジェクトの開発環境を整える際、Dockerさえインストールしてしまえば、すぐに開発環境を整えることができました。
(その点だけでいうと、Vagrantでもできるとは思いますが。。。)

MyCoachの方も継続してアップデートする予定なので、今後ともよろしくお願いします!

blog-page_footer_336




blog-page_footer_336




-Server
-

執筆者:

免責事項

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


comment

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

CAPTCHA


関連記事

aws

Amazon EC2を使ってみる

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

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

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

DockerでRails + Vue.jsの環境を作ってみる

1 はじめに1.1 前回までのあらすじ1.2 今回の趣旨1.3 環境2 MySQLのUTF-8対応3 Node.jsをRubyコンテナに組み込む4 Webpackerを使用してVue.jsをインストー ...

CircleCIを使ってみた(RailsのRSpecとデプロイのサンプル)

1 はじめに2 導入するにあたって3 項目B4 補足4.1 開発環境とCI環境でdatabase.ymlが異なる5 さいごに はじめに 個人的に作成しているアプリケーションのCIツールとして、Circ ...

laravel logo

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

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

フォロー

blog-page_side_responsive

2017年10月
1234567
891011121314
15161718192021
22232425262728
293031  

アプリ情報

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