Python GAE错误:-/bin/sh:1:exec:gunicorn:未找到
我正在尝试使用GAE的试用版在GAE上部署我的应用程序。到目前为止,我成功地创建了一个app.yaml,该app.yaml使用python 3.6定制了灵活的环境设置 但是,在部署应用程序时,应用程序成功构建,但是,我不断收到以下错误 更新服务[默认设置](这可能需要几分钟)…失败。 错误:(gcloud.app.deploy)错误响应:[9] 应用程序启动错误: /bin/sh:1:exec:gunicorn:未找到 以下是我的项目中文件的文件夹层次结构: 遵循app.yaml的代码Python GAE错误:-/bin/sh:1:exec:gunicorn:未找到,python,git,api,google-app-engine,flask,Python,Git,Api,Google App Engine,Flask,我正在尝试使用GAE的试用版在GAE上部署我的应用程序。到目前为止,我成功地创建了一个app.yaml,该app.yaml使用python 3.6定制了灵活的环境设置 但是,在部署应用程序时,应用程序成功构建,但是,我不断收到以下错误 更新服务[默认设置](这可能需要几分钟)…失败。 错误:(gcloud.app.deploy)错误响应:[9] 应用程序启动错误: /bin/sh:1:exec:gunicorn:未找到 以下是我的项目中文件的文件夹层次结构: 遵循app.yaml的代码 env
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
我肯定错过了一些东西,我真的非常感谢大家的帮助。
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中的代码,告诉我我在这里遗漏了什么吗考虑页面中所示的例子,考虑将CMD线从:
CMD exec gunicorn -b :$PORT main:app
致:
我只看到基本图像是
python
一个,而不是gcr.io/google appengine/python
一些更改,我就可以在docker中运行你的应用程序了
Twilio_Routing.py
中,将host
更改为收听0.0.0
,而不是127.0.0.1
。这需要使服务器在外部可用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:notfound
您的Dockerfile
和您的requirements.txt的人,请!请编辑您的问题,并将文件内容添加为(代码格式)文本。根据建议进行更改,我相信我遗漏了在dockerfile中添加requirements.txt文件,我的问题是我把requirements.txt文件拼错了。通过你的回答,我意识到我没有在我的dockerfile中添加requirements.txt文件,我最终做到了。后来,它给了我一个关于没有模块名的错误:main,所以我用ENTRYPOINT命令替换了CMD命令,并成功地部署了它。然而,当我试图访问时,它给了我错误502坏网关。我又被卡住了。我错过了什么。我已根据我的最新更改更新了问题中的dockerfile。@AfsanAbdulaliGujarati您是否检查了容器中的日志(不仅仅是docker日志)?如果您将其放在app.py您的应用程序而不是main中会怎么样?让我试一试。谢谢
Flask==1.0.2
gunicorn==19.9.0