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


関連記事

mkcertで簡単にオレオレ証明書を発行する

1 はじめに2 前提3 mkcert3.1 概要3.2 インストール3.3 証明書作成3.4 証明書設置と設定3.5 接続確認4 さいごに5 おすすめ書籍 はじめに ローカルのwebサーバにhttps ...

aws

AWS App RunnerでWebサーバをデプロイしてみる

1 はじめに1.1 今回の記事で行うこと2 AWS App Runnerとは3 App Runnerでコンテナをデプロイする3.1 ステップ1「ソースおよびデプロイ」3.1.1 ソースの設定3.1.2 ...

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

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

InnoDBでauto_incrementの値が戻る?

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

aws

LocalStackのLambdaをホットリロードさせる

1 はじめに2 全体の流れ2.1 コードの変更を検知する2.2 ファイルをビルドしてdeployする3 ホットリロードを実現する3.1 deployスクリプトを作成する3.2 Watchmanのラッパ ...

フォロー

blog-page_side_responsive

2017年10月
1234567
891011121314
15161718192021
22232425262728
293031  

アプリ情報

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