/ bin / sh : 1 : exec : gunicorn : 찾을 수 없음
Google 클라우드 앱 엔진에 간단한 django 앱을 배포하려고합니다. 앱에는 wsgi가 HTTPS 요청을 제공하고 asgi가 웹 소켓 요청을 제공하는 기본 wsgi 및 asgi 서버가 있습니다. 앱을 배포하기 위해 Google 앱 엔진 자습서를 따르고 있으며 성공적으로 빌드 및 배포됩니다. 그러나 배포 된 작업 영역에서 설치된 패키지를 찾을 수 없습니다.
다음은 내가 따르는 단계입니다.
gcloud init
virtualenv myenv
source activate myenv/bin/activate
pip install -r requirements.txt
gcloud app deploy
requirements.txt에는 gunicorn과 daphne이 있으며 설치됩니다.
브라우저에서 배포 된 앱을 열 때 발생하는 오류입니다.
2020-12-15 20:48:25 my-service[20201216t014451] /bin/sh: 1: exec: gunicorn: not found
이것이 내 app.yaml 파일의 모습입니다.
runtime: python38
service: my-service
instance_class: F2
entrypoint: gunicorn -b :$PORT main:app
handlers:
- url: /.*
script: auto
secure: always
inbound_services:
- warmup
automatic_scaling:
min_instances: 1
min_idle_instances: 1
max_instances: 2
max_idle_instances: 1
나는 또한 진입 점, 즉 진입 점 에 정확한 경로를 전달하여 시도했습니다 : gunicorn -b : $ PORT main : app 하지만 같은 오류가 발생했습니다
내 virtualenv 내에서 gcloud app deploy를 호출하고 있지만 배포되면 설치된 패키지, 즉 daphne 및 gunicorn을 읽을 수 없습니다. 둘 다 동일한 패키지로 동일한 디렉토리의 로컬 환경에서 완전히 잘 작동합니다.
나는이 질문에 언급 한 이 와 이 하고 답변을 시도했지만 아무것도 작동하지 않습니다.
답변
GAE 앱 엔진은 app.yaml과 동일한 디렉토리에 requirements.txt 파일이 필요합니다.
내 requirements.txt 파일이 하위 폴더에 있었기 때문에 Google 앱 엔진이 gunicorn을 설치할 수 없습니다. 배포하는 동안 요구 사항을 로컬로 설치하고 설치된 요구 사항을 전달했지만 로컬 서버에서 변경 사항을 테스트하는 경우를 제외하고는 로컬로 설치할 필요가없는 것 같습니다.