web-dev-qa-db-ja.com

GAEエラー:-/ bin / sh:1:exec:gunicorn:見つかりません

試用版を使用してGAEにアプリをデプロイしようとしています。これまでのところ、python 3.6。

ただし、アプリのデプロイ中にアプリは正常にビルドされますが、次のエラーが発生し続けます

サービスの更新[デフォルト](これには数分かかる場合があります)...失敗しました。エラー:(gcloud.app.deploy)エラー応答:[9]アプリケーション起動エラー:/ bin/sh:1:exec:gunicorn:見つかりません

以下は、私のプロジェクト内のファイルのフォルダー階層です。

enter image description here

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でアプリを実行できました。

  1. Twilio_Routing.pyで、0.0.0.0ではなく127.0.0.1でリッスンするようにHostを変更します。これは、サーバーを外部からも利用できるようにするために必要です。
  2. 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
    
3
shubhamr

私にとってのエラーは、gunicornがrequirements.txt

Flask==1.0.2
gunicorn==19.9.0

注意:

OPがこのフラグを追加したことがわかります。これは、exec: gunicorn: not found

7
Casey

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ではない場合のみです。

0
VonC