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


関連記事

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

1 はじめに2 Dockerのインストール3 ファイルの準備3.1 Gemfile3.2 Gemfile.lock3.3 Dockerfile3.3.1 Ruby(Rails)3.3.2 MySQL3 ...

aws

Amazon Linux 2でLet’s Encryptが使えない

1 はじめに2 Amazon Linux 22.1 Amazon Linux Extras Library3 Let’s Encrypt4 本題5 さいごに はじめに 知人からタイトルのよ ...

Firestoreのルール設定とdumpやrestoreが簡単に行えるfsrpl

1 はじめに2 Firestoreのルール設定2.1 全て許可2.2 本番環境でのルール設定例3 fsrpl3.1 fsrplとは3.2 インストール3.3 秘密鍵3.4 copy3.5 開発環境から ...

InnoDBでauto_incrementの値が戻る?

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

単体のORMライブラリとしてEloquentを使う

1 はじめに2 Eloquentとは3 導入3.1 Composerインストール3.2 Eloquentインストール4 DB接続4.1 illuminate/database4.2 モデルクラス作成4 ...

フォロー

blog-page_side_responsive

2017年10月
1234567
891011121314
15161718192021
22232425262728
293031  

アプリ情報

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