Dockerを用いた環境構築(docker-compose使用ver.)


1. 背景

参加したハッカソンでdockerを用いて環境構築を行うことになり、せっかくなので記事にしてみた.

2. この記事を読んでほしい人

・dockerを初めて使う方
・Gitはちょっとだけ使ったことある方
・環境の大枠をチームメンバーが作ってくれたが、どのように自分の環境に反映させるかわからないという方

3. dockerとは

一言でいうとコンテナ型の仮想環境を作成、実行するためのプラットフォームです。
例えるなら、 説明書を渡せば、どんな部屋でも一瞬で作ってくれる建設会社 のようなイメージです
Dockerfileという名の説明書を実行すれば、どんな部屋(Mysql環境、Python環境など)でも一瞬で作ってくれて、同じ内容の説明書を渡せば、誰でも全く同じ作りの部屋に住むことができます.

4. docker-composeとは

複数のコンテナで構成されるアプリケーションについて、Dockerイメージのビルドや各コンテナの起動・停止などをより簡単に行えるようにするツールです。
こちらの記事で詳しく説明されています.
https://knowledge.sakura.ad.jp/16862/
例えるなら、建設会社に渡したい説明書がたくさんあるとき、その説明書をまとめて実行してくれる機械 のようなイメージです

5. 実際の手順

1. dockerをインストールする

こちらの記事が大変参考になります

2. terminal(git bash)を開く

3. git cloneする

今回は例としてdockerを用いてmysql環境が作成されているリポジトリを用います
https://github.com/Yugo-Fukuta/HackU_preY_team5

git clone GitHubリポジトリのURL

4. Dockerのアプリを起動する

5. ビルドして立ち上げる

# イメージのビルド
docker-compose build
# コンテナの作成
docker-compose up -d

環境構築自体はここまでで完了となります

(6. 実際に使えるか試してみる)

Mysql環境が構築されているか確認してみます

# コンテナ名の確認
docker-compose ps
# コンテナの実行
docker exec -it コンテナ名 bash -p
# mysqlの起動
mysql -u root -p -h 127.0.0.1
-> パスワードを入力(今回はrootと打てばok)
# hacku_dbというデータベースがあるか確認
mysql> show databases;

6. なぜこれだけでできるのか

後日追加予定