はじめに
本記事を読んでほしい方
- Docker, Docker Composeを学んだが知識があまり整理されていない初学者
本記事ではDockerとDocker Composeを使ったWebアプリの開発環境構築について、知識を整理するため簡単に説明していきます。Dockerfileやdocker-compose.ymlの詳細な記述の仕方については他記事を参考にしてください。
Dockerとは?
Webアプリケーションを開発する際の開発環境、本番環境、テスト環境を構築できる仕組みのことです。プロジェクト単位で環境構築を行うため、ある人の開発マシンではプログラムが動くけど、ある人は動かないという問題が発生しないという利点があります。Linuxの仮想コンテナを立ち上げ、その中で開発を行います。
Docker, Docker Composeを使った Webアプリの開発環境構築
1つのコンテナには1つのアプリケーションのみ配置できるという原則があります。しかし、通常Webアプリケーションの開発環境を作るには、アプリケーションのフレームワーク+データベース等、複数のコンテナを用意しなければなりません。(例:Ruby on Rails + PostgreSQL)
そこで、Docker Composeを活用するのです。Docker Composeは、Yamlファイルの内容に沿って、複数のコンテナを立ち上げることができます。
Dockerでの開発環境の構築の際に必要なファイルは以下の通りです。
- Dockerfile (Docker imageを作成し、コンテナを起動するためのファイル)
- docker-compose.yml (コンテナの立ち上げ方について記述するためのファイル)
- database.yml (データベースを別で使用する場合、編集するファイル)
実際にDocker + Docker Composeを使った環境構築の方法を説明していきます。まず、Dockerを使って開発環境を構築するにはコンテナを立ち上げる必要があります。このコンテナというものは、Docker imageから作られます。そしてこのDocker imageを作るものがDockerfileです。
わかりにくいと思うので、下に図示します。(DockerfileからDocker imageを作り、Docker imageからコンテナを作ります)
また、DockerfileからDocker imageを作る際は、docker-compose build
コマンド、Docker imageからコンテナを立ち上げるのがdocker-compose up
コマンドを使います。
こちらの一連の流れを行うために、上記のDockerfile, docker-compose.ymlを作成し、編集を行っていくのです。
Dockerfile, Docker-compose.ymlの編集の仕方については下記記事をご参照下さい。(Ruby on Railsの場合)
まとめ
Dockerを使うことで複数人で開発するプロジェクトの開発環境を一人ひとり揃えることができ、Docker Composeを使うことでWebアプリケーションフレームワーク+データベースのような複数コンテナを起動する場合にも対応することができます。非常に強力なツールですね。
以上で説明を終了します。最後まで読んでいただきありがとうございました!