質問: 先日から、dokerを使って開発環境等に挑戦している者です。 開発環境を、どこまで設定すればいいのかがよく分からないため、教えてください。 ### 疑問:サーバーosは開発環境に入れないの? 「rails + unicorn + nginx」などを検索すれば、設定方法や必要性等がたくさんヒットするが、webサーバー/アプリケーションサーバー/モジュールの組み合わせで、「centos + rails + unicorn + nginx」等のサーバーosを含んだ記事があまりヒットしません。また、ヒットしても開発環境ではなく、実行環境と書かれている事が多いため、開発段階ではサーバーosは必要性ないのですか? ### 今後 今は全体の流れを把握するため浅く広く勉強していますが、将来**「vps rails5 puma nginx postgresql」** で自分の勉強の成果を形にできれば良いなと考えております。 その場合、どのような開発環境が一般的か教えてください。よろしくお願いいたします。
回答: システム開発を行う場合は、サーバーOSや使用するミドルウェア、言語のバージョンなどは、 本番環境と同じものを用意するべきと思います。 開発段階では問題なく動いていたが、本番移行後に動かなくなった。 などの想定外の事故もある程度未然に防ぐことが出来ると思います。 現在は仮想環境がDockerなどを使って簡単に構築出来ます。 仮想環境の場合、一度開発環境を作ってしまえば、何度でも新しく作り直す事もできますし、 いらなくなったら破棄することもできます。 また、開発環境から本番環境へデプロイする際も同じバージョンで揃えておけば、 コマンド一発でデプロイが出来たりもする方法もあったりするので、 本番と開発で同じ環境を作っておくことをおすすめいたします。