概要
DjangoプロジェクトをCloud BuildでApp Engineに自動デプロイできるようにする設定。
cloudbuild.yaml設定内容の、日本語の情報がなさそうなので共有します。
方法
標準的なデプロイ方法を実施+以下のcloudbuild.yamlファイルを使用します。
cloudbuild.yaml
steps:
# collectstatic用のdjangoを走らせるための環境を作る
- name: 'python:3'
entrypoint: python3
args: ['-m', 'venv', '/workspace/venv']
- name: 'python:3'
entrypoint: "/workspace/venv/bin/pip"
args: ['install', '-r', 'requirements.txt']
# 作ったvenvを使ってcollectstatic(テスト等を実行してもよい)
- name: 'python:3'
entrypoint: "/workspace/venv/bin/python"
args: ['./manage.py', 'collectstatic', '--noinput']
# App Engineにデプロイ
- name: "gcr.io/cloud-builders/gcloud"
args: ["app", "deploy"]
timeout: "1200s"
デプロイのステップでvenvを作ってそこでcollectstaticなりテストなりを実行してます。
注意点としては、Cloud Buildでは"/workspace/"内の情報しか次のステップに引き継がれないことくらいです。
まとめ
上記のcloudbuild.yamlの設定で、いい感じにデプロイできます。
GitHubとCloud Buildを連携したりすれば、GitHubにpushするごとに自動でデプロイされるように設定できて楽しいのでお勧めです。
初投稿につき、気になる点やご質問・改善案などあればお気軽にコメントいただけると幸いです。