Python
GAE
開発環境

App Engineのローカル開発サーバーdev_appserver.pyの使い方

App Engineのローカル開発サーバーdev_appserver.pyでよく使うオプション。

普通に起動。

$ dev_appserver.py app.yaml

http://localhost:8080で確認。管理コンソールはhttp://localhost:8000

datastoreの保存ディレクトリを指定して起動。

複数のプロジェクトを切り替えながら開発するときなどに混ざらないように。

$ dev_appserver.py --datastore_path=.datastore app.yaml

.(ドット)で始まるディレクトリ名にしておくとデプロイ時にスキップされます。
app.yamlのskip_files:で明示的に指定してもOK。

ローカルホストのポート番号を指定して起動。

複数のプロジェクトを並行して開発するときなどdev_appserver.pyを複数起動したい場合。

$ dev_appserver.py --port=8081 --admin_port=8001 --datastore_path=.datastore app.yaml

Dockerコンテナで起動。

公式のイメージを取得。いちばん軽量なAlpine linuxでの場合。

$ docker pull google/cloud-sdk:alpine

Dockerfileです。

FROM google/cloud-sdk:alpine

MAINTAINER syousei

RUN gcloud components install app-engine-python

RUN mkdir /app_source
VOLUME /app_source

EXPOSE 8000:8000 8080:8080

ビルドします。

$ docker build -t syousei/appengine-python:alpine .

Dockerコンテナ内からgcloudコマンドを使えるようにしたい場合は認証を通します。
このコマンドを打つと表示されるURLをブラウザで開いて認証トークンが表示されたらそれを打ち込むと認証されます。

$ docker run -ti --name [DOCKER CONTAINER NAME] syousei/appengine-python:alpine gcloud auth login

ランします。

$ docker run -it -v C:\Projects\[PROJECT NAME]\app_source:/app_source -p 8080:8080 -p 8000:8000 --name=[DOCKER CONTAINER NAME] syousei/appengine-python:alpine

dev_appserver.pyを起動します。

$ docker exec -itd [DOCKER CONTAINER NAME] dev_appserver.py --host 0.0.0.0 --admin_host 0.0.0.0 --datastore_path=/tmp/datastore /app_source/app_dev.yaml

以上です。