Skip to content

enpit2020の成果物。欲しいものが本当に今必要かどうかを見直すきっかけを作るためのアプリ。

Notifications You must be signed in to change notification settings

Last-Vega/Goodbuy

Repository files navigation

Goodbuy

スライド

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フォルダがルート直下に作成される。

毎回すること

  • ルートディレクトリで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イメージを用いてデプロイする

手順

  1. masterの内容をdeployブランチにpullする
  • GitHub Desktopなら
    • masterブランチで Fetch origin で最新のものをpullする
    • deployブランチに移動し, branch->Update from masterを選択
  • コマンドラインなら(合ってるかわからない...)
git checkout master # masterブランチに移動
git pull origin master # masterを更新
git checkout deploy # deployブランチに移動
git merge master # マスターをマージ
  1. herokuにログイン
heroku login
  1. アプリ作成(初回のみ)
heroku create [アプリ名]
  1. Container Registry にログイン
heroku container:login
  1. Dockerイメージのビルド・プッシュ
heroku container:push web
  1. Dockerイメージのリリース
heroku container:release web
  1. 動作確認
heroku open

その他使うコマンド

  • npmやpipのパッケージを更新した時には、変更を反映させるためにdocker-compose up --build (-d)でビルド&コンテナ起動するようにする。

確認

About

enpit2020の成果物。欲しいものが本当に今必要かどうかを見直すきっかけを作るためのアプリ。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •