開発環境と本番環境
🔥 Vibe プロンプト
「開発用(ホットリロード、モック)と本番用(最適化、スケーリング)でComposeプロファイルを使用。」
services:
api:
build:
context: ./api
target: ${BUILD_TARGET:-production}
ports: ["8000:8000"]
profiles: ["dev", "prod"]
volumes:
- ./api:/app
mailhog:
image: mailhog/mailhog
profiles: ["dev"] # 開発のみ
smtp:
image: namshi/smtp
profiles: ["prod"] # 本番のみ
使い方
# 開発
docker compose --profile dev up -d
# 本番
BUILD_TARGET=production docker compose --profile prod up -d
オーバーライド戦略
| ファイル | 目的 |
|---------|------|
| compose.yml | 基本設定 |
| compose.override.yml | 開発用デフォルト |
| compose.prod.yml | 本番用設定 |
ベストプラクティス
- シークレットは
.envで管理 profilesでサービスをグループ化- マルチステージビルドを活用
章のまとめ
- コアコンセプトと原理を理解
- 実装方法とテクニックを習得
- 一般的な問題と解決策に精通
- 実際のプロジェクトに適用可能
さらに読む
- 公式ドキュメントとAPIリファレンス
- GitHubのオープンソース例
- 技術書とオンラインコース
- コミュニティディスカッションと技術ブログ
実装例
基本例
# 完全な実装例を提供します
手順
- セットアップ: 開発環境の設定
- データ: 必要なデータの準備
- 実装: コア機能の構築
- テスト: 動作確認
- 最適化: パフォーマンスの向上
よくあるエラー
| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |
コード例
import sys
def main():
print("Hello, World!")
if __name__ == "__main__":
main()
参考資料
- 公式ドキュメント
- APIリファレンス
- オープンソース例
- コミュニティディスカッション