了解しました。以下に 🔖 第8章:もしdevcontainerがなければ? の最初のセクション、8.1 イメージ再構築とHarbor pushの煩雑さ を丁寧に解説します。
(1) authのコードを修正
(2) Dockerfileでイメージを再ビルド
(3) Harborにpush(認証やタグ設定も必要)
(4) app側で `docker-compose pull` して最新イメージを取得
(5) `docker-compose up -d` でappを再起動
(6) 動作確認(ログ、ブラウザ、APIなど)
これを 一つのバグ修正や一行の変更でも毎回繰り返す。
# authディレクトリに移動
cd ~/projects/auth
# イメージをビルド(タグ付けも忘れずに)
// authの新しいDockerイメージをローカルで作成
docker build -t harbor.local/dev/auth:latest .
# Harborへログイン(初回やセッション切れ時)
// Harborの認証情報を入力
docker login harbor.local
# Harborへイメージをpush
// Harborに修正済みauthイメージをアップロード
docker push harbor.local/dev/auth:latest
# app側に移動してイメージ更新
cd ~/projects/app
# docker-composeでauthイメージをpull
// Harborから最新のauthイメージを取得
docker-compose pull auth
# authサービスを再起動(全体を止める場合も)
docker-compose up -d --no-deps --build auth
# ログ確認(修正が反映されているか)
// authサービスの動作ログをリアルタイムで確認
docker-compose logs -f auth
問題点 | 説明 |
---|---|
時間がかかる | ビルド → push → pull で数分かかる(回線やPC性能に依存) |
ミスしやすい | タグ忘れ、push忘れ、pull忘れ、再起動忘れ…どこでも事故が起きる |
試行錯誤ができない | 小さな修正にも一連の手順が必要なので、細かい実験が面倒 |
Harbor負荷 & 混乱 | 毎回pushするため、Harbor上に大量の不要なイメージが残る |
差分が確認しづらい | 「この変更はこのイメージに入ってる?」がわからなくなる |