Django 응용 프로그램을 Heroku에 배치하는 방법

소개하다.

  • 은 여기서 제가 Django에서 제작한 대기 응용 프로그램을 배치할 것입니다.source-code입니다.
  • 초기 설정


    Heroku CLI 설치


  • Linux에서
    curl https://cli-assets.heroku.com/install.sh | sh
    

  • 창문에
    Heroku CLI는 here에서 다운로드하여 설치하기만 하면 됩니다.
  • 설치 확인


    CLI를 통해 설치 확인
    heroku --version
    

    Heroku 계정 만들기


    만약 당신이 Heroku 계정이 없다면, 하나 만들어라.

    잠입!


    로그인


    CLI를 통해 Heroku 계정에 로그인해야 합니다.
    heroku login
    
  • 기본 브라우저가 열리므로 로그인 자격 증명을 입력해야 합니다.
  • 이 성공적으로 로그인하면 터미널에서 Heroku 응용 프로그램을 직접 만들고 관리할 수 있습니다.

  • git 저장소 만들기


    왜git 저장소가 필요합니까?
  • 은 이를 업데이트 메커니즘으로 간주하고 저희가 제출한 모든 제출은 배치된 응용 프로그램에 대한 업데이트로 간주됩니다.
  • 은 언제든지 새로운 업데이트가 우리의 애플리케이션을 파괴하거나 너무 많은 번거로운 오류가 발생하면 이전의 안정적인 제출로 넘어가 정지 손실을 줄일 수 있는 복구 시점을 만드는 데도 도움을 줄 수 있습니다.
  • → 관리자를 포함하는 디렉터리에서git 저장소를 초기화합니다.py
    git init
    
    → 프로그램의 모든 내용을git 저장소에 추가합니다.
    git add .
    
    → 승낙을 하다
    git commit -m "initial commit"
    

    Heroku 응용 프로그램 만들기


    heroku create
    
    임의의 임의의 이름을 가진 Heroku 응용 프로그램을 만듭니다.나의 예에서'함봉 80429'이다.

    git 저장소와 Heroku 응용 프로그램 링크
  • 우리는 우리의heroku 응용 프로그램을 우리git 저장소에 연결해야 한다. 왜냐하면 우리는 이 저장소를 제출할 것을 알고 있지만,heroku는 무엇을 보아야 할지 모른다.
  • heroku git:remote -a salty-peak-80429
    

    응용 서버 설정

  • 현재 Django는 자체 개발 서버(python mange.py runserver)를 가지고 있습니다. 우리는 이미 개발 서버에서 우리의 응용 프로그램을 여러 차례 테스트했습니다.
  • 우리가 응용 프로그램을 Heroku에 배치할 때 우리는 우리의 개발 서버를 더 이상 사용할 수 없습니다. 우리는 어떤'응용 서버'가 필요합니다. Heroku는 서버에 응용 프로그램을 설치한 후에 서비스를 제공할 것입니다.
  • 또한 어플리케이션을 배포하기 전에 어플리케이션이 여전히 어플리케이션 서버에서 실행되고 있는지 확인해야 합니다.
  • 응용 서버를 설치합시다.
    pip install gunicorn
    
    응용 서버를 테스트해 봅시다.주 프로그램 디렉터리에서 wsgi.py 파일을 찾았습니다. 제 경우 주 디렉터리는 "tutorial"입니다.
    gunicorn tutorial.wsgi
    
    이 명령은 윈도우즈에서 실행되지 않습니다. 왜냐하면 gunicorn은 윈도우즈와 호환되지 않기 때문입니다.추가 정보→ here .
    localhost 포트 8000에서 서버를 시작합니다.
  • 이제 모든 것이 정상적인지 확인하기 위해 애플리케이션을 테스트해야 합니다.가보세요.
  • 현재 우리는 우리의 응용 프로그램이 응용 서버에서도 정상적으로 실행될 수 있다는 것을 알고 있다.
  • 이 단계에서, 우리는 이미 우리의 응용 프로그램을 배치할 준비가 되어 있지만, 일은 이렇다
  • Heroku는 응용 프로그램 서버를 어떻게 시작하는지, 응용 프로그램 실행에 필요한 것도 모른다.
  • Heroku에게 이 사실의 진상을 알리기 위해 우리는 두 개의 파일을 더 만들어야 한다.
  • 프로그램 파일
  • 요구 사항txt
  • 프로그램 파일 만들기


    프로그램 파일이란 무엇입니까?
  • Heroku 응용 프로그램에는 프로그램 시작 시 실행되는 명령을 지정하는 Procfile이 포함되어 있습니다.Procfile을 사용하여 다음과 같은 다양한 프로세스 유형을 선언할 수 있습니다.
  • 어플리케이션용 웹 서버
  • 다양한 유형의 작업 프로세스
  • 단일 프로세스 예: clock
  • 실행할 작업 before a new release is deployed
  • Procfile에 대한 자세한 내용은 을 참조하십시오.→ here
  • "관리"가 포함된 홈 디렉토리에 있습니다.Procfile 만들기
    touch Procfile
    
    응용 프로그램 서버를 시작할 때 Heroku가 실행해야 할 명령을 작성해야 합니다.
    web: gunicorn tutorial.wsgi
    

    요구 사항을 작성합니다.txt


    이 파일은 우리가 프로그램에서 사용하는 모든 모듈을 포함하여 정상적으로 실행할 수 있도록 합니다. 그렇습니다. 사용자가 사용하는 모든 모듈을 수동으로 기록할 필요가 없습니다. 명령이 있습니다.
    pip freeze > requirements.txt
    
    릴리즈에서 사용하는 모듈이 자동으로 계산됩니다.

    가상 환경에서 이 명령을 실행하여 가상 환경을 어떻게 만드는지 확인하십시오→ here .

    끝맺다


    모든 최신 변경 사항으로git 저장소를 업데이트합시다.
    저희가 보여드릴게요.

  • git add.
  • git commit-m "Requirements.txt와Procfile이 있는gunicorn(응용서버) 추가"
  • 그것을 추진합시다
    git push heroku master
    

    이 가능하다, ~할 수 있다,...

  • Django 설정에 static root를 설정하지 않으면 DISABLECTOLLECTSTATIC 오류가 발생합니다.
  • Django는 어플리케이션 서버에 별도로 정적 파일을 제공하지 않습니다. 이것이 바로 Heroku가 모든 정적 파일을 저장하고 관리할 수 있는 위치를 정의해야 하는 이유입니다.
  • settings.py 파일에 STATIC ROOT를 추가하기만 하면 됩니다.
  • STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
    
  • 아직
  • 이 없으면, settings.py에서 허용되는 호스트에 Heroku 사이트를 추가해야 합니다.
  • , 즉 내 경우 https://salty-peak-80429.herokuapp.com을 허용해야 하거나 모든 호스트를 간단히 허용할 수 있습니다.
  • ALLOWED_HOSTS = ['*']
    
  • 변경 후 제출을 진행하고git push heroku master를 사용하여 전송을 다시 시도합니다.
  • 배치가 완료되었습니다!


    예. 밀어넣기 명령이 실행되는 동안 오류가 발생하지 않은 경우 일반적으로 밀어넣기 명령이 처음 실행되는 경우가 많습니다. 하지만 해결 방법은 코너에서 기다리고 있습니다. 찾기만 하면 됩니다.
    다음 위치에서 내가 배포한 업무 응용 프로그램을 볼 수 있습니다.
    To-Do App

    리소스

  • Heroku Documentation
  • Source Code
  • 이게 다 훔쳐보는 거야...

    좋은 웹페이지 즐겨찾기