前提
開発環境の構築を行う前に、以下がそれぞれインストールしてあるか確認してください。
- Docker
- 導入、動作確認はこちらを参考に
- Git
- 各自でインストールしてください、例えば、
全体の流れ
これから説明する開発フローとして、
Gitレポジトリからclone → docker-compose実行 → 開発 → Gitレポジトリへpush
という流れとなっています。
今回は、赤枠のPostgreSQLとPython-Djnagoをコンテナとして立ち上げています。
これらは、docker-composeによって自動的に起動させることができます。
では、実際に、構築を行っていきます。
共通のフォルダを用意
まず、Githubから開発する共通のフォルダを用意します。
コマンドプロンプトを開き、以下のコマンドを入力するか、
$ git clone https://github.com/bluespace-llc/chat_app.git
GitHub Desktopで開くか、レポジトリを直接登録し、フォルダ一式をclone(レポジトリのフォルダを複製)します。
この辺は調べてもらえると助かります。
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を使用しての起動方法
VS Codeの左のタブから拡張機能を選び、"Docker"を検索、Dockerをインストールする。
左のタブに、クジラが追加されていれば、インストール完了です。
chat_appフォルダを開き、docker-compose.ymlを右クリック。
下の方にある、Compose Upをクリックすると、コンテナが立ち上がります。
すると、Docker Hubからのダウンロードと、フォルダの配置等が行われます。
[+] 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で確認してみます。
postgres、backendがRUNNINGであることが確認できます。
frontendは設定していないので、EXITEDと書いてありますが、バックエンドのみの開発には影響はないです。
ちなみに、Dockerアプリから操作もできます。
Startを押すことで、docker-compose upコマンドを打たなくても、立ち上げができますし、停止もできます。
また、コンテナ内に入り、直接コマンド操作もできます。
Djangoの起動確認
以下にアクセスして、Djangoが動作しているか確認してみます。
問題なければこの画面になります。
後は、開発していくだけです。
ソースコードの書き換え後は、gitにPushもしくはPull Requestして、gitレポジトリに反映させていきます。
お疲れ様です。