2016-04-16 6 views
0

custom runtimeを使用してアプリケーションエンジンにデプロイしています。デプロイ時に、アプリエンジンがキャッシュなしでドッカーファイルを完全に再構築することに注意してください。これにより、展開にはかなりの時間がかかります。私はDockerfileをデプロイ間で変更していません。私のアプリケーションコードだけが変更されています。ここに私のDockerファイルがあります:App Engineカスタムランタイムがドックファイルをキャッシュしない

FROM ubuntu 
EXPOSE 8080 

RUN apt-get update 
RUN apt-get install -yq python-crypto python-openssl libffi-dev libssl-dev 
RUN pip install --upgrade pip 
RUN pip install gunicorn==19.4.5 
RUN pip install Flask==0.10.1 
RUN pip install PyMySQL==0.7.2 
RUN pip install alembic==0.8.5 
RUN pip install Flask-Migrate==1.8.0 
RUN pip install Flask-CORS==2.1.2 
RUN pip install PyCrypto==2.6.1 
RUN pip install requests==2.9.1 
RUN pip install --upgrade cffi 
RUN pip install google-api-python-client==1.5.0 
RUN pip install gcloud==0.11.0 

# Ensure that Python outputs everything that's printed inside 
# the application rather than buffering it. 
ENV PYTHONUNBUFFERED 1 

ADD . /app/ 
WORKDIR /app 

ENTRYPOINT ["gunicorn", "-b", ":8080", "server:app"] 

私の配備をスピードアップする方法はありますか?

+0

あなたは[コンテナビルダーAPI](https://cloud.google.com/container-builder/docs/)を使用していますか? GCEベースのリモートビルド?ローカルドッカーはビルドされていますか? – asamarin

+0

私はapp engine managed vmを使用しています(これはコンテナビルダーを使用していると思います)。私は 'gcloud --project myproject preview app deploy --version v1 app.yaml'を使ってデプロイしています – sthomps

答えて

1

デプロイメントの目標は、アプリケーションとして実行されるドッカー画像を構築することです。

dockerファイルにはドッキング・イメージ・ビルドの説明しか含まれていないため、内容が変更されないということは何も意味しません。新しいドッカー・イメージを取得するにはビルド・インストラクションを実行する必要があります。

暫定ドッキングウィンドウの画像だけだろう別のdockerfileためFROMとして参照されるようドッカイメージのビルドを高速化する唯一の方法は、(現在のFROM画像プラスインストールされているすべてのpipパッケージを言う)変わらず、一時的な結果を格納することですアプリのコードを更新してください。しかし、AFAIK GAEは、他のカスタム画像を構築する際に、このようなカスタム中間画像をベース画像として保存することはできません。

+0

トラブルシューティングのページにはキャッシュがあるはずです。 (https://cloud.google.com/appengine/docs/flexible/custom-runtimes/troubleshoot) – sthomps

+0

ああ、そのキャッシュは存在しますが、あなたが制御できない共有キャッシュです。あなたは、あなたが構築しているものとその頻度に応じて、利益を得るかどうかを決めるかもしれません。ビルドログには、この記事のように、キャッシュから利益を得たかどうかを示す( 'Using cache'メッセージ)かどうかを示す必要があります:http://stackoverflow.com/questions/34500213/how-can-i-speed-up- rails-docker-deployments-on-google-cloud-platformを使用しています。 –

+0

キャッシュを制御する可能性があります。その質問に対する私の更新答えを見てください。 –

0

ローカルドッキング環境が正しく設定されている場合は、--docker-build localフラグを使用してローカルビルドを実行できます。

--docker-build DOCKER_BUILD 

( 'ローカル ')ホストされた(' リモート')またはローカルドッカービルドを実行します。ローカルビルドを実行するには、ローカルドッカー環境が正しく設定されている必要があります。デフォルトはホステッドビルドです。

からhttps://cloud.google.com/sdk/gcloud/reference/preview/app/deploy#--docker-build

+0

これは何もしていません。コンソールログでは、私はまだ 'REMOTE BUILD OUTPUT'とDockerfileからのすべてのステップを見ることができます – sthomps

関連する問題