reona.dev

Railsアプリケーション開発時のDocker構成


WEB アプリケーション開発に参画すると、Docker でアプリケーションやミドルウェアを実行することになることが多いと思う。 実際に私が 2 年弱の開発経験の中で携わったプロジェクトの多くが Docker を利用していた。

環境構築を簡単に行うことができるのは大きなメリットではあるが、以下のようなデメリットもある。

コマンドの入力や実行に関する時間は 1 つ 1 つを考えれば微々たるものではあるが、開発時にコマンドを実行する機会は少なくないため、Developer Experience を高める上で改善には価値があると考える。

基本的にアプリケーションをコンテナで実行するように構成されているプロジェクトが大半ではあるが、現在のプロジェクトでは Rails アプリケーションと Webpacker をローカルで直接実行し、DB 等のミドルウェアをコンテナに載せるようにしている。host 等、別途設定が必要な部分がある場合には、設定を変更した上で以下を実行している。

$ git update-index --skip-worktree ${file_name}

ミドルウェアがローカルでも立ち上がっている場合、コンテナではなくローカルのサーバを優先することがあるので注意が必要。

言語のバージョンを指定したりなど、最初の手間はあるが、

など、個人的にはメリットが完全に勝っている印象。

Mac での開発で上に挙げた Docker のデメリットに悩まされてる方は少なくないように感じるので、一度試していただきたい。