DockerとGitHubを用いた開発フローをそれぞれのコマンドの役割を説明しながら解説します。
1. 開発開始時の準備
a. 最新のコードを取得
git pull origin main
役割:
リモートリポジトリにある最新のコードをローカル環境に取得します。これにより、チーム全員が同じコードベースで開発を開始できます。
b. Docker コンテナを起動
コンテナのビルド(初回や依存関係が変わった場合)
docker-compose up --build -d
役割:
Dockerfile
に記載された環境構築手順を基に、新しいコンテナイメージを作成し、アプリケーションをバックグラウンドで起動します。(-dのdはdetachedのdらしい。「分離した」という意味。)
通常の起動
docker-compose up -d
役割:
既存のコンテナイメージを使ってアプリケーションをバックグラウンドで起動します。再ビルドは行わないため、すぐに作業を開始できます。
c. コンテナの状態確認
docker-compose ps
役割:
現在起動中のコンテナの状態を確認します。コンテナが正常に動作しているか、ポート番号が正しくマッピングされているかを確認できます。
c. コンテナの状態確認
docker-compose ps
役割:
現在起動中のコンテナの状態を確認し、動作状況やポート設定を把握します。
出力例
Name Command State Ports
---------------------------------------------------------------------------------------------------
container_name python app.py Up 0.0.0.0:8000->8000/tcp
解説
-
Name
:コンテナの名前。 -
Command
:コンテナ内で実行されているコマンド。ここではpython app.py
。 -
State
:コンテナの状態。Up
は正常に動作中であることを示します。 -
Ports
:- ポート設定。
0.0.0.0:8000->8000/tcp
は、ホスト側のポート8000
がコンテナ内部のポート8000
にマッピングされていることを示します。 - この設定により、ブラウザで
http://localhost:8000
にアクセスするとコンテナ内のアプリケーションに接続できます。
- ポート設定。
確認ポイント
-
State
がUp
→ コンテナは正常動作中。 -
Ports
のマッピング → ポート設定が期待通りになっているか確認。
d. ブラウザで確認
http://localhost:8000
役割:
アプリケーションが正しく起動しているかをブラウザでテストします。8000
番ポートでアプリケーションが動作していることを確認します。
2. 開発中の流れ
a. コードを変更する
ローカルのプロジェクトディレクトリでコードを編集します(例: app.py
, templates/index.html
)。
役割:
アプリケーションの機能を拡張したり修正したりするために、コードを変更します。
b. リアルタイムログを確認
docker-compose logs -f
役割:
アプリケーションの動作ログをリアルタイムで確認します。エラーの原因や挙動をデバッグするために使用します。
c. コンテナの再ビルドが必要な場合
docker-compose down
docker-compose up --build -d
役割:
コンテナを完全に停止した後、新しい依存関係やコード変更を反映するために、コンテナイメージを再構築します。
3. 開発終了時
a. ローカル変更のコミット
git add .
git commit -m "Initial commit"
git push origin main
役割:
ローカルで行った変更をリモートリポジトリに反映します。これにより、チーム全員が同じ最新のコードを共有できます。
b. コンテナを停止
docker-compose down
役割:
起動中のコンテナを停止し、開発環境のリソースを解放します。
4. チーム開発の注意点
a. 他のメンバーが変更をプッシュした場合
作業を保存
git add .
git stash
役割:
現在の作業内容を一時的に退避させ、他のメンバーがリモートリポジトリにプッシュした変更を取り込む準備をします。
最新コードを取得
git pull origin main
役割:
リモートリポジトリから最新のコードを取得します。
退避した作業を再適用
git stash pop
役割:
一時的に退避していた作業内容を再適用し、開発を再開します。
b. 必要に応じてコンテナを再起動
docker-compose down
docker-compose up -d
役割:
リポジトリの変更が反映されるよう、コンテナを再起動します。
5. まとめ(コマンド一覧)
1. リポジトリから最新コードを取得:
git pull origin main
2. コンテナを起動:
docker-compose up -d
3. コードを編集して動作確認:
docker-compose logs -f
4. コードをプッシュ:
git add .
git commit -m "Describe changes"
git push origin main
5. コンテナを停止:
docker-compose down