Skip to content

rhoboro/pythonapp_skeleton

Repository files navigation

はじめに

Pythonプロジェクト構成のスケルトンです。

appパッケージがアプリケーションコードです。 appパッケージは設定値LOG_LEVELを表示するだけのサンプルアプリケーションです。 環境変数APP_CONFIG_FILEで設定値を記述したファイル(app/config/内のファイル)を切り替えられます。

使い方

開発

# ベースイメージのビルド
$ make build-baseimage
# イメージのビルド
$ make build
# ローカルで起動
$ make run
docker run -it --rm --name app -w /usr/src -v $(pwd):/usr/src -e APP_CONFIG_FILE=base app/dev:local
LOG_LEVEL: DEBUG

開発中に別のコマンドを実行したいときは下記のように実行できます。

$ make run CMD='ls /usr/src/app'
docker run -it --rm --name app -w /usr/src -v $(pwd):/usr/src -e APP_CONFIG_FILE=base app/dev:local ls /usr/src/app
__init__.py  __pycache__  config  main.py  tests

テスト実行

下記のコマンドを実行するとテストが動きます

$ make test

テストでは下記を行なっています。

フォーマットチェックでエラーになった際は、下記でコード整形を実行できます。

$ make format

依存関係の追加

直接依存しているライブラリ名(必要に応じてバージョンも)を requirements.txt に追加し、下記を実行します。

$ rm requirements.lock
$ make requirements.lock

ディレクトリ構成

.
├── Dockerfile
├── Makefile
├── README.md
├── app
│   ├── __init__.py
│   ├── config
│   ├── main.py
│   └── tests
├── baseimage
│   └── Dockerfile
├── requirements.lock
├── requirements.txt
└── requirements_test.txt

app/

  • アプリケーション本体です
  • Dockerイメージの/usr/src/app にマウントされます。
  • テストコードは tests/ に配置します。

baseimage/

  • DockerHubから直接イメージを取得しているとリクエスト制限にひっかかり、CI/CDが失敗することがあります
  • そのため、ベースイメージを作成しECRやGCRに保存しておくことを想定しています

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published