준비 및 확인사항
지원 Python 버전
지원 Python 버전
- 3.7, 3.8, 3.9, 3.10, 3.11, 3.12
No module named, Command not found 에러
No module named, Command not found 에러
프로젝트가 저장된 GitHub 저장소에
requirements.txt 파일 자체가 누락되거나 파일 내부에 필요한 패키지 정보가 누락된 경우입니다. 프로젝트에서 사용하시는 패키지에 대한 명세가 requirements.txt 내에 잘 작성되었는지 확인이 필요합니다.pip 패키지가 설치 불가
pip 패키지가 설치 불가
Python 버전이 프로젝트에 맞지 않게 설정되었을 가능성이 있습니다. 특히 3.11, 3.12 버전은 이전의 패키지와 의존성 이슈가 발생할 가능성이 크므로 미리 로컬에서 테스트 한 후 알맞은 버전으로 설정해야합니다.
서비스 접속 시 50X 페이지만 뜹니다.
서비스 접속 시 50X 페이지만 뜹니다.
서비스 배포 후 50X 발생 시, 실행 로그 결과에 따라 다음과 같은 케이스로 나눠 살펴볼 수 있습니다.1️⃣ 어플리케이션이 정상적으로 구동되지 않고 예외가 발생하거나 서버가 종료된 경우어플리케이션 구동에 필요한 패키지가 정상적으로 설치되지 않았거나 데이터베이스 연결이 실패했을 수 있습니다. 실행 로그의 에러 메세지를 기반으로 소스 내용 및 환경 변수 등을 확인해주세요.2️⃣ 서버는 정상적으로 구동됐는데 권한과 관련된 에러가 발생하는 경우언어 및 프레임워크 중 특정 도메인 규칙에 대하여 CORS 허용 규칙을 적용해주어야 접속가능한 것이 있습니다. 리버스 프록시 페이지를 참고해주세요.3️⃣ 빌드가 정상적으로 완료 되었는데 상태가 ‘시작중’에서 바뀌지 않고 생성된 URL에 접속해도 503 페이지만 뜨는 경우루트 디렉토리가 아닌 서브디렉토리에 코드가 존재하는 경우 이러한 상황이 발생할 수 있습니다. 사용자의 저장소를 디렉토리를 확인하고, 해당되는 경우 서브디렉토리 설정을 추가해주세요.4️⃣ 서버는 정상적으로 구동됐는데 접속시 에러창이 뜨고 실행 로그에 아무런 반응이 없는 경우소스 코드에 설정된 포트가 배포시에 작성하신 포트와 불일치할 경우일 확률이 높습니다. 입력한 포트를 확인해주세요.
Django
쉘에 접근하지 않고 Django의 Super User 생성
환경변수와 시작 명령어를 다음과 같이 세팅하면 Super User를 생성할 수 있습니다.
Django Admin 페이지에서 로그인 시 500 에러
도메인에 대한 origin 설정이settings.py에서 누락되어 발생하는 에러로, 다음의 코드를settings.py에 추가하면 해결됩니다.
Django 프로젝트를 배포했는데 manage.py 파일이 존재하지 않는다고 표시
Python 명령어 입력시python이 아닌python3으로 실행해야 하며, GitHub 저장소에서manage.py가 위치한 곳을 정확히 지정해주어야 합니다.
- GitHub 저장소의 루트 디렉토리에
manage.py가 위치한 경우 별도의 설정 필요 없음 - GitHub 저장소의 서브 디렉토리에
manage.py가 위치한 경우 최초 템플릿 생성시, 경로 지정 필요- 예) 서브 디렉토리 -
django-mariadb-samplapp - 최초 생성시 서브 디렉토리 필드에 알맞은 디렉토리명 입력
- 예) 서브 디렉토리 -
Flask
gunicorn: gunicorn command not found 에러 발생
Flask의 웹 서버 역할을 하는 gunicorn 패키지가 컨테이너 이미지 빌드 시에 설치되지 않은 경우입니다. 배포 대상 GitHub 저장소 내의 requirements.txt 파일 내부에 gunicorn 패키지가 올바르게 명시되어 있는지 확인해주세요.
Flask 서버가 실행 오류
Start Command 필드에는 기본적으로gunicorn -b 0.0.0.0:5000 app:app명령어가 세팅되어 있습니다. GitHub 저장소의 Flask 프로젝트에서app.py아닌 다른 이름의 파일에서 Flask를 import 하여 어플리케이션을 구성하였다면 다음과 같이 명령어를 변경하여야 합니다.
FastAPI
uvicorn: uvicorn command not found 에러
Flask의 웹 서버 역할을 하는 uvicorn 패키지가 컨테이너 이미지 빌드 시에 설치되지 않은 경우입니다. 배포 대상 Github 저장소 내의 requirements.txt 파일 내부에 uvicorn 패키지가 올바르게 명시되어 있는지 확인해주세요.
FastAPI 서버가 실행 오류
Start Command 필드에는 기본적으로uvicorn main:app --host=0.0.0.0 --port=8000명령어가 세팅되어 있습니다. 혹은 GitHub 저장소의main.py에서 다른 이름의 변수에 FastAPI 객체를 할당한 경우 다음과 같이 명령어를 변경하여야 합니다.추가로, 클라우드타입에 배포시 개발용으로 사용되는--reload는 Start Command 에서 제외해주셔야 합니다.