試用版を使用してGAEにアプリをデプロイしようとしています。これまでのところ、python 3.6。
ただし、アプリのデプロイ中にアプリは正常にビルドされますが、次のエラーが発生し続けます
サービスの更新[デフォルト](これには数分かかる場合があります)...失敗しました。エラー:(gcloud.app.deploy)エラー応答:[9]アプリケーション起動エラー:/ bin/sh:1:exec:gunicorn:見つかりません
以下は、私のプロジェクト内のファイルのフォルダー階層です。
App.yamlのコードに従う
env: flex
runtime: custom
api_version: 1
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
python_version: 3.6
#handlers:
#- url: /SmsResponse
# script: Twilio_Routing.RecivedSms
#
#- url: /CallResponse
# script: Twilio_Routing.ReceivedCall
私は確かに何かを逃しているので、ここでいくつかの助けに本当に感謝します。 git repoへのリンク
requirements.txt
Flask==0.10.1
gunicorn==19.3.0
twilio==6.8.4
DockerFile
FROM gcr.io/google-appengine/python
LABEL python_version=python3.6
RUN virtualenv --no-download /env -p python3.6
# Set virtualenv environment variables. This is equivalent to running
# source /env/bin/activate
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
# Copy the application's requirements.txt and run pip to install all
# dependencies into the virtualenv.
ADD requirements.txt requirements.txt
RUN pip install -r requirements.txt
ADD . /app/
#CMD gunicorn -b :$PORT main:app
ENTRYPOINT [ "python", "Twilio_Routing.py" ]
追伸requirements.txtの変更後、エラー502 Bad Gatewayが発生します。
サービスが正常に実行されたことを示すログ。
017-12-25 01:29:03 default[20171224t212610] * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
2017-12-25 01:29:03 default[20171224t212610] * Restarting with stat
2017-12-25 01:29:03 default[20171224t212610] * Debugger is active!
2017-12-25 01:29:03 default[20171224t212610] * Debugger PIN: 134-103-452
2017-12-25 01:29:17 default[20171224t212610] * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
2017-12-25 01:29:17 default[20171224t212610] * Restarting with stat
2017-12-25 01:29:17 default[20171224t212610] * Debugger is active!
2017-12-25 01:29:17 default[20171224t212610] * Debugger PIN: 134-103-452
誰かがgitで私のコードを見て、私がここで欠けているものを教えてもらえますか?
いくつかの変更により、Dockerでアプリを実行できました。
Twilio_Routing.py
で、0.0.0.0
ではなく127.0.0.1
でリッスンするようにHost
を変更します。これは、サーバーを外部からも利用できるようにするために必要です。app.yaml
はすでに構成されているため、Google App Engine
のようにDockerfile
をカスタマイズする必要はありません。それをあなた自身のカスタムのものとして保管してください。
#Python's Alpine Base Image
FROM python:3.6-Alpine3.6
#Installing all python modules specified
ADD requirements.txt requirements.txt
RUN pip install -r requirements.txt
#Copy App Contents
ADD . /app
WORKDIR /app
#Start Flask Server
CMD [ "python","Twilio_Routing.py"]
#Expose server port
EXPOSE 8080
私にとってのエラーは、gunicornがrequirements.txt
Flask==1.0.2
gunicorn==19.9.0
注意:
OPがこのフラグを追加したことがわかります。これは、exec: gunicorn: not found
GoogleCloudPlatform/python-runtime
ページに示されている例を考慮して、CMD行を次のように変更することを検討してください。
CMD exec gunicorn -b :$PORT main:app
に:
CMD gunicorn -b :$PORT main:app
exec
used here が表示されるのは、ベースイメージがpython
であり、gcr.io/google-appengine/python
ではない場合のみです。