https://docs.google.com/presentation/d/1QCJ1WCg9zngbLG4tI_DoR6qx911PPcrEr7-CrfvoV88/edit#slide=id.p
[Goodbuy] は [目的のない買い物]を 解決したい [慎重に買い物をしたい人]向けの [Webサービス]です。 これは [購入理由を記述するタイミングを与えること] によって、 [家計簿・買い物リスト] とは違って [理にかなった買い物] を実現できます。
- backend
- FlaskでAPIを作成
- ルート直下のdist(Vueでビルドしたフォルダ)をテンプレートフォルダにしている。
- ルート直下のrequirements.txtを元にpythonのパッケージをインストールする。
- frontend
- Vueでフロントを作成
- postgres
- PostgreSQLの初期化ファイルが置かれ、コンテナ起動時に実行される。
- manage.py
- Flaskサーバーを起動する処理を記述
- コンテナ起動時に実行される。
- docker-compose.yml
- コンテナ起動時の設定ファイル
- Dockerfile_***
- イメージの設定ファイル
- frontend直下に.env.localを置き、'VUE_APP_BASE_URL=<コンテナが起動しているOSのIPアドレス>:5000/'を記述する。
【例】
VUE_APP_BASE_URL=http://localhost:5000/
- ルートディレクトリでdocker-compose buildを実行してイメージを作成する。
- backend
- requirements.txtの内容でpip installが走る。
- frontend
- package.jsonの内容でnpm installが走る。
- npm run buildが実行され、Vueのdistフォルダがルート直下に作成される。
- backend
- ルートディレクトリでdocker-compose up (バックグランドで実行する場合は '-d'を付ける。)を実行してコンテナを起動する。
-
backend
- manage.pyが実行され、Flaskサーバーが立ち上がる。
- コンテナが起動しているOSのIPアドレス:5000でサービスにアクセスできる。
【例】
localhost:5000/
-
postgres
- PostgreSQLが起動する。
- コンテナを起動させた状態で別のターミナルからpostgresでSQLを叩きたいとき
docker-compose exec postgres bash psql -U root -h postgres -d lifehack
でpostgresコマンドを叩ける
-
- フロントの開発をするときには、通常通りホストマシン上でnpm run serve でローカルサーバーを立ち上げ、ビルドするときはnpm run build
- Dockerイメージを用いてデプロイする
- masterの内容をdeployブランチにpullする
- GitHub Desktopなら
- masterブランチで
Fetch origin
で最新のものをpullする - deployブランチに移動し, branch->
Update from master
を選択
- masterブランチで
- コマンドラインなら(合ってるかわからない...)
git checkout master # masterブランチに移動
git pull origin master # masterを更新
git checkout deploy # deployブランチに移動
git merge master # マスターをマージ
- herokuにログイン
heroku login
- アプリ作成(初回のみ)
heroku create [アプリ名]
- Container Registry にログイン
heroku container:login
- Dockerイメージのビルド・プッシュ
heroku container:push web
- Dockerイメージのリリース
heroku container:release web
- 動作確認
heroku open
- npmやpipのパッケージを更新した時には、変更を反映させるためにdocker-compose up --build (-d)でビルド&コンテナ起動するようにする。
確認