0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

技術検証:GitHub Actionsを使用してDjangoアプリのDockerイメージをAmazon ECRに自動プッシュしてみた

Last updated at Posted at 2024-12-08

はじめに

前回の記事の続きとして、今回はシェルスクリプトで作成したDjangoプロジェクトとDocker関連ファイルを、GitHub Actionsを使用してAmazon Elastic Container Registry(ECR)に自動でプッシュする手順を紹介します。

これにより、リポジトリのメインブランチに変更が加えられると、自動でDockerイメージがECRにアップロードされるため、素早くDjangoアプリケーションの開発を進めることができます。

今回の検証は少し難易度が高いかもしれませんが、ほぼ自分への備忘録として、その手順や実行した内容を記事としてまとめていきます。

前回の振り返り

前回の記事では、シェルスクリプトを使用してDjangoアプリケーションの作成および必要なDocker関連ファイルの準備まで行いました。

Djangoアプリケーション.
my_django_project/
├── Dockerfile
├── manage.py
├── myproject/                # Djangoプロジェクトのディレクトリ
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp/                    # Djangoアプリケーションのディレクトリ
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations/           # マイグレーションファイル
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py
└── requirements.txt          # 必要なパッケージが記載されたファイル

このようなディレクトリ構成を作成し、ブラウザ上でDjangoの初期ページが正常に動作することを確認しました。

Djangoの初期ページ("The install worked successfully!")が表示され、アプリケーションが正しく動作していることを確認済みです!

スクリーンショット 2024-12-08 7.26.18.png

これを踏まえ、今回の目標は GitHub Actionsを使用して自動化を進めること です。

過去の記事ではGitHub Actionsの使い方についても解説しているので、事前準備がまだの方はそちらを参考にしてください。

実際にやってみた

今回は、以下の前提条件を満たしている場合を想定して進めます。

  • GitHubリポジトリが作成済み
  • GitHub Secretsが設定済み
  • GitHub Actionsのワークフローが準備済み
  • Amazon ECRリポジトリが作成済み

これらの設定がまだ完了していない場合は、上記のリンク先の記事を参考に準備を進めてください。

ローカルからの変更をプッシュ

まず、ローカル環境で適当にファイルを編集し、その変更をGitHubリポジトリにプッシュします。

以下の手順で、メインブランチに変更を反映します。

適当にファイルを編集してから以下のコマンドを実行してください.
# ファイルを編集後、以下のコマンドを実行
git init
git add .
git commit -m "test"
git branch -M main
git remote add origin git@github.com:free-honda/my_django_project.git
git push origin main

エラーが発生した場合は、必要に応じて修正してください。

特に、リモートリポジトリのURLやアクセス権の設定を確認する必要があるかもしれません。

プッシュ後の動作確認

変更をプッシュした後、GitHubの「Actions」タブに移動し、ワークフローが正しく実行されているか確認します。

スクリーンショット 2024-12-08 11.06.53.png

ワークフローがエラーなく実行されると、Dockerイメージが正常にECRにプッシュされます。

スクリーンショット 2024-12-08 11.08.25.png

以下のスクリーンショットのように、約41秒後にDockerイメージが正常にプッシュされていることが確認できました。

スクリーンショット 2024-12-08 11.07.39.png

さらに、AWS管理コンソールのECRサービス画面で、想定通りDockerイメージがアップロードされていることを確認しました。

スクリーンショット 2024-12-08 11.09.21.png

これで、GitHub Actionsを使用したECRへの自動デプロイが無事に完了しました!

次回は、この仕組みを活用してアプリケーション開発をさらに効率化していく手順を紹介します。

まとめ

この記事では、GitHub Actionsを使用してメインブランチへのプッシュをトリガーに、DockerイメージをAmazon ECRに自動的にデプロイする設定を行いました。

このプロセスは、ハッカソンやチーム開発における基盤構築として非常に重要なステップです。この内容を通して、より深い理解を得ることができました。

最後に、この記事がどなたかの技術的な支えになれば幸いです。今後も、実践的な技術検証を続けていく予定ですので、ぜひ引き続きお楽しみください!

関連記事

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?