我有一个酒瓶应用程序,可以部署到我的本地主机。不幸的是,当试图将它部署到Google时,我遇到了一个错误。当我在我的gcloud --project $PROJECT_ID app deploy app.yaml文件中调用.gitlab-ci.yml之后遵循控制台中指定的链接时,我会收到一个500 server error。为了调试这一点,我使用了gcloud app logs read,它显示了一个很长的错误,结尾是:
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File
"/srv/main.py", line 1, in <module> from flask import Flask, request, jsonify,
abort ModuleNotFoundError: No module named 'flask'我的app.yaml文件如下:
entrypoint: "gunicorn -b:$PORT main:app"
service_account: app-engine-admin@###########.iam.gserviceaccount.com
runtime_config:
python_version: 3
handlers:
- url: .*
script: main.app我的requirements.txt读到:
firebase_admin==5.2.0
Flask==2.1.2我的.gitlab-ci.yml中被调用的部分是:
gcloud-deploy:
image: google/cloud-sdk:alpine
stage: deploy
only:
- dev2
script:
- echo $SERVICE_ACCOUNT > /tmp/$CI_PIPELINE_ID.json
- gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
- gcloud --project $PROJECT_ID app deploy app.yaml
- rm /tmp/$CI_PIPELINE_ID.json这个错误让我感到困惑,因为我认为requirements.txt文件中列出的所有库都将在部署期间由GAE导入。如果有人遇到这样的情况,或可以指出我的正确方向,这将是非常感谢!
发布于 2022-06-15 16:27:24
这个问题的答案很简单。我只是在requirements.txt文件中丢失了几个包。主要的是gunicorn包。因为它没有安装,所以web服务器从来没有真正地被中断过。这导致了我遇到的问题。我使用pipenv lock -r > requirements.txt解决了这个问题。
https://stackoverflow.com/questions/72495424
复制相似问题