1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker Compose開発環境構築(バックエンド)

Last updated at Posted at 2023-09-08

前提

開発環境の構築を行う前に、以下がそれぞれインストールしてあるか確認してください。

全体の流れ

これから説明する開発フローとして、

Gitレポジトリからclone → docker-compose実行 → 開発 → Gitレポジトリへpush

という流れとなっています。
画像1.png
今回は、赤枠のPostgreSQLとPython-Djnagoをコンテナとして立ち上げています。
これらは、docker-composeによって自動的に起動させることができます。
バックエンド構成図.png
では、実際に、構築を行っていきます。

共通のフォルダを用意

まず、Githubから開発する共通のフォルダを用意します。

コマンドプロンプトを開き、以下のコマンドを入力するか、

$ git clone https://github.com/bluespace-llc/chat_app.git

GitHub Desktopで開くか、レポジトリを直接登録し、フォルダ一式をclone(レポジトリのフォルダを複製)します。
この辺は調べてもらえると助かります。
スクリーンショット 2022-03-29 225804.jpg

chat_appフォルダの中身

フォルダ配置は以下のようになっています。

chat_app/
 ├ .git
 │
 ├ backend/
 │ ├ Dockerfile/
 │ ├ requirements.txt
 │ └ project/
 │   ├ chatapp/(略)
 │   ├ project/(略)
 │   └ manage.py
 │
 ├ frontend/(略)
 │ ├ project/
 │ └ Dockerfile/
 │
 └ docker-compose.yml

.gitはgit管理用のフォルダなので、気にしないで、そのままに。

chat_app配下に、backend、frontendのフォルダとdocker-compose.ymlというファイルが存在します。
backend、frontendのフォルダ配下に、それぞれDockerfileが存在し、docker-compose.ymlがそれを読み取り、コンテナを立ち上げています。
フォルダを指定しているので、この配置は動かさないように!

backend配下のprojectフォルダにDjangoのプロジェクトが配置されており、このフォルダをコンテナにマウントする(ローカルPCからコンテナにフォルダをコピー)形式をとっています。
requirements.txtには、Pythonで使用するライブラリとそのバージョンが記述されており、それをもとにコンテナへインストールしています。

コンテナを起動

先にDockerを起動します。

コマンドでの操作

コマンドプロンプトを開いて、カレントディレクトリをchat_appにします。
そして、以下のコマンドで入力することで、コンテナを起動させます。

$ docker-compose up -d

-dオプションはバックグラウンドで起動できるそう。

C:\Users\xxx\Documents\GitHub\chat_app>docker-compose up -d
Starting chat_app_db_1 ... done
Starting chat_app_backend_1 ... done
Starting chat_app_frontend_1 ... done

コンテナのリスタートは、

$ docker-compose restart

中断は、

$ docker-compose stop

終了は、

$ docker-compose down

また、execコマンドでコンテナ内をコマンドで操作することもできます。

$ docker-compose exec コンテナ名 コマンド

例えば、コマンドから直接サーバを立ち上げることもできます。
$ docker-compose exec backend python manage.py runserver

VS Codeを使用しての起動方法

スクリーンショット 2022-04-21 064848.jpg
VS Codeの左のタブから拡張機能を選び、"Docker"を検索、Dockerをインストールする。
左のタブに、クジラが追加されていれば、インストール完了です。

chat_appフォルダを開き、docker-compose.ymlを右クリック。
スクリーンショット 2022-04-21 095028.jpg
下の方にある、Compose Upをクリックすると、コンテナが立ち上がります。
スクリーンショット 2022-04-21 095213.jpg
すると、Docker Hubからのダウンロードと、フォルダの配置等が行われます。
スクリーンショット 2022-04-21 095434.jpg

[+] Running 4/4
 - Network chat_app_default       Created                                                                                                                                                                              0.7s 
 - Container chat_app-db-1        Started                                                                                                                                                                              3.2s
 - Container chat_app-backend-1   Started                                                                                                                                                                              3.4s
 - Container chat_app-frontend-1  Started                                                                                                                                                                              4.8s

ターミナルはタスクで再利用されます、閉じるには任意のキーを押してください。

この表示が出れば、コンテナの立ち上げが完了です。

コンテナの動作確認

Dockerで確認してみます。
スクリーンショット 2022-04-21 095612.jpg
postgres、backendがRUNNINGであることが確認できます。
frontendは設定していないので、EXITEDと書いてありますが、バックエンドのみの開発には影響はないです。

ちなみに、Dockerアプリから操作もできます。
スクリーンショット 2022-04-21 170013.jpg
Startを押すことで、docker-compose upコマンドを打たなくても、立ち上げができますし、停止もできます。
スクリーンショット 2022-04-21 170251.jpg
また、コンテナ内に入り、直接コマンド操作もできます。

Djangoの起動確認

以下にアクセスして、Djangoが動作しているか確認してみます。

問題なければこの画面になります。
スクリーンショット 2022-04-21 100007.jpg
後は、開発していくだけです。
ソースコードの書き換え後は、gitにPushもしくはPull Requestして、gitレポジトリに反映させていきます。

お疲れ様です。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?