在过去的三个月里,我一直在尝试使用 GIS 数据部署 webapp。该应用程序很重,可以说我的笔记本电脑运行起来有些困难,尽管我可以在本地运行它,而且显然我终于可以设置它了;虽然我仍然面临错误。
我也要去 condaenv 而不是 pip、pip 和 gdal 他们让我头疼。
应用程序.yaml
runtime: custom
env: flex
resources:
cpu: 4
memory_gb: 6.5
disk_size_gb: 10
liveness_check:
path: "/liveness_check"
timeout_sec: 4
check_interval_sec: 60
failure_threshold: 10
readiness_check:
path: "/readiness_check"
app_start_timeout_sec: 900
entrypoint: gunicorn -b :$PORT app:app
runtime_config:
python_version: 3
我在 .yaml 文件中声明了我的 ENTRYPOINT,因为它似乎是比使用 dockerfile 更好的选择。
Dockerfile
FROM continuumio/miniconda:latest
WORKDIR /home/reinhold/Documents/webapps/house_market_app/ihm_condaenv
COPY environment.yml ./
COPY app.py ./
COPY boot.sh ./
RUN chmod +x boot.sh \
&& conda env create -f environment.yml \
&& conda install -n base -c defaults conda\
&& echo "source activate ihm_condaenv" > ~/.bashrc
ENV PATH /home/reinhold/anaconda3/envs/ihm_condaenv/bin:$PATH
EXPOSE 8080
#RUN /bin/bash -c "source /home/reinhold/anaconda3/envs/ihm_condaenv/bin/ihm_condaenv.sh"
CMD ["./boot.sh"]
#ENTRYPOINT [“–host=0.0.0.0”, “–admin_host=0.0.0.0” , "app.py"]
我不太确定是否需要在这里再次声明 ENTRYPOINT,因为当我不这样做时,我会收到一个错误,例如应用程序没有正确启动。
我还声明了我的入口点
boot.sh 文件
#!/bin/sh
gunicorn -b :$PORT --access-logfile - --error-logfile - app:app
#gunicorn -b :8080 --access-logfile - --error-logfile - wsgi:app
错误
ERROR: (gcloud.app.deploy) Error Response:
[4] Your deployment has failed to become healthy in the allotted time and therefore was rolled back.
If you believe this was an error,
try adjusting the 'app_start_timeout_sec' setting in the 'readiness_check' section.
我将不胜感激任何帮助
[GitHub 存储库][ https://github.com/Reinhold83/ihm_condaenv#ihm_condaenv]
最佳答案
该行为是预期的,我认为您误解了这些概念。
如果您使用 App Engine Flexible Custom Runtimes ,入口点在 Dockerfile 中定义,因为自定义运行时搜索 Dockerfile 以进行配置,正如您在自定义运行时的 app.yaml 文件的一般设置中看到的那样,没有在 app.yaml 文件中定义入口点的选项。
使用 App Engine Flexible Predefined Runtimes作为 Python、Java 等,您可以在 app.yaml 中指定入口点,因为这些运行时不需要 Dockerfile 进行配置。
请让我知道有关此的任何其他问题。
关于python-3.x - 谷歌应用引擎 - 应用因长期部署而变得不健康,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61831985/