Public | Automated Build

Last pushed: a year ago
Short Description
漢の顔API用のNginx
Full Description

TensorFlowにFlaskベースのAPIでアクセスするベース

  • FlaskというWEBフレームワークを利用しています
    • swagger.ymlは connexionベースでやろうとしていた時の名残で飾りです。
  • 基本的にはdocker-composeで起動する想定になっています
  • とりあえず適当にtensorflow.Session().run()だけしてみています

ディレクトリ構成

├── Dockerfile          ...tensorflow+flaskでAPIを動かすイメージの定義
├── README.md
├── docker-compose.yml    ...とりあえずローカルで動かすためのcompose定義
├── dockerignore
├── nginx               ...リクエストを受けるNginx
│   ├── Dockerfile
│   └── nginx.conf
└── src
    ├── app.py          ...起動ファイル。(今はベタにここに全部書いてあります)
    ├── guniconf.py
    └── swagger.yaml

使い方

起動方法

$ docker-compose up

で起動し、 http://localhost:8080/healthcheck でとりあえず起動確認。
(Win/Macはdocker-machineのIP 192.168.99.100)

止め方

Ctrl+Cで止まった風に見えますが、

$ docker-compose down

で、止めてください。(docker-composeのバージョンによるのかも)

アーキテクチャメモ

Dockerベース

See:

Python2ベース

Googleから公式に配布されているDockerイメージgcr.io/tensorflow/tensorflowはPython2.7ベースなのでそれに乗っかる。

src以下をコンテナにマウント

./src -> /opt/tensor-api のマウントをdocker-compose.ymlに定義してあります。
ローカルで動かすときにいちいちdocker-compose buildするの面倒かなーと思って。

apiテストするときのコマンド

$ base64 -i input.jpg -o ./sampledata
$ curl -X POST -H "Content-Type: text/plain" -d @sampledata localhost:8080/api/face
Docker Pull Command
Owner
mtinx
Source Repository