質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

Q&A

解決済

1回答

415閲覧

Dockerで高度な開発環境を作るには

退会済みユーザー

退会済みユーザー

総合スコア0

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

0グッド

0クリップ

投稿2018/10/13 11:55

編集2018/10/13 11:58

Dockerをつかって開発環境を作成したいです。

環境としては以下を考えております。

アプリケーション

  • CentOS7
  • Aapache2.4
  • Ruby2.4
  • Rails5
  • Vue2

DB、セッション周り(バージョンは未定)

  • MySQL
  • Redis

Dockerを使って開発環境を作る場合、
アプリケーションとして一つのコンテナ、
DB、セッション周りに一つのコンテナという感じで2つのコンテナがあれば良いかなというところです。

DBやセッション系はすでに公開されているDockerイメージを仕様するつもりです。
ですが、アプリケーションの方は、apache,ruby,npm等必要な為、centosのイメージをdockerhubより取得し、
必要なミドルウェアをインストールして、スナップショットをとってイメージを保存しようと考えております。

聞きたいこととしては、このようなやり方が適切なのかどうかです。
docker初心者なので、イメージはそものそも自分で作ることはあまりないのか、最低限のイメージを取得し自分でカスタマイズするのがスタンダードなのか、ちょっと分かりませんでした。
また、dockerは一つのミドルウェアにつき一つのコンテナという認識だったのですが、今回アプリケーションでは複数のミドルウェアをインストールし起動することになります。
果たしてこのやり方は、間違っているのか?ほか位の良い方法があるのか聞きたいです。

よろしくお願いたします。


追記
アプリケーションのコンテナイメージを最小限のcentosにしようと思った理由としては、ミドルウェアが複数あるためです。
rubyだけ起動する環境で良ければ、ruby用のイメージを取得したのですが、apacheもnpmもとなると
rubyが入っているイメージにapache、npmも入れていくなら、最小限にして全てのミドルウェアをインストールしようと考えました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

また、dockerは一つのミドルウェアにつき一つのコンテナという認識だったのですが、今回アプリケーションでは複数のミドルウェアをインストールし起動することになります。

よく言われる原則はミドルウェアではなくプロセスだと思います。
一つのプロセスにつき一つのコンテナです。

ですが、アプリケーションの方は、apache,ruby,npm等必要な為、centosのイメージをdockerhubより取得し、
必要なミドルウェアをインストールして、スナップショットをとってイメージを保存しようと考えております。

これをするならDockerfileを組むべきだと思います。
コードで管理できた方が現状把握や今後の変更が容易になるからです。

アプリケーションとして一つのコンテナ、
DB、セッション周りに一つのコンテナという感じで2つのコンテナがあれば良いかなというところです。

一般的にはredisとMySQLをわざわざ一つのコンテナにはしないのではないでしょうか。

RailsとVueについてはアプリ構成が分からないとなんともですが、私ならAPI(Rails)+SPA(Vue)にしますので、Rails, Vue.js(+Nginx), MySQL, redis の4つのコンテナに分けます。

投稿2018/10/13 12:28

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/13 13:37

回答ありがとうございます。 > 一つのプロセスにつき一つのコンテナ なるほど、ミドルウェアと勘違いしていましたが、原則としてはプロセスという感じなのですね。 > RailsとVueについてはアプリ構成が分からないとなんともですが、私ならAPI(Rails)+SPA(Vue)にしますので、Rails, Vue.js(+Nginx), MySQL, redis の4つのコンテナに分けます。 今回はSPAで作成する予定はないので、コンテナ構成として、 - Apache+Rails+Vuejs - MySQL - Redis のように3つに分けようと思います。 なお、ご指摘頂いた通り、イメージを作成するのでなく、Dockerfileを作成し、Dockerfileからイメージを作成するように構築していこうと思います。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問