概要
前回はGCPから提供されているDockerイメージを利用してデプロイしてみたけど、TensorBoardが最新バージョンじゃなかったので、自前でDockerイメージを用意してApp Engineにデプロイしてみました。
TensorBoardをGoogle App Engineで使えるようにしてみた
https://cloudpack.media/42836
前提
Dockerアプリはインストール済みの前提です。
手順
Dockerfileの作成
> mkdir 任意のディレクトリ > cd 任意のディレクトリ > touch Dockerfile > vi Dockerfile > docker build . -t tensorboard
参考)DockerのイメージをGAE/FEにデプロイする
https://qiita.com/wasnot/items/b8691bb4940e6f4a9c24
Dockerfile
FROM python:3.5 RUN pip install tensorflow ENTRYPOINT ["tensorboard", "--logdir", "gs://任意のバケット/output", "--port", "8080"]
ポイントはtensorboardのパラメータオプションで--port
で8080指定することでしょうか。
app.yamlの作成
> gcloud app gen-config > vi app.yaml
もし既存のGCPプロジェクトにデプロイする場合、service
指定しないと、default
にデプロイされてしまうので、ご注意ください。
今回はautomatic_scaling
でインスタンスが1台のみ起動するように指定しています。
app.yaml
env: flex runtime: custom service: サービス名 automatic_scaling: min_num_instances: 1 max_num_instances: 1
参照データのコピーとデプロイ
今回は--logdir
の参照先をCloud Storageにするので、
TensorFlowの結果をCloud Storageのバケットへコピーしておきましょう。
> gsutil cp -r TensorFlowの結果フォルダ gs://任意のバケット/output/
App Engineへデプロイします。
> gcloud app deploy (略) Deployed service [サービス名] to [https://サービス名-dot-プロジェクトID.appspot.com] You can stream logs from the command line by running: $ gcloud app logs tail -s サービス名 To view your application in the web browser run:
アクセスしてみる
では、App Engineにデプロイできたので、URLへアクセスしてみましょう。
> open https://サービス名-dot-プロジェクトID.appspot.com
やったぜ。
前回とは違って認証機能はありませんので、ケースバイケースでの利用になりそうです。
参考
雑に TensorBoard を起動する Docker イメージの作り方
https://qiita.com/hoto17296/items/c0d214ca6e34c2d72a52
DockerのイメージをGAE/FEにデプロイする
https://qiita.com/wasnot/items/b8691bb4940e6f4a9c24