Heroku에 프로젝트 실어 서비스 공개

로컬 환경에서 작성한 Rails 프로젝트를 Heroku 에 실어 공개할 때의 작업 메모.

Heroku 정보
Heroku 운영 CLI
Heroku 오류 메시지에 대처

간단한 흐름
  • Heroku 용 PostgreSQL 설치
  • config/database.yml을 약간 변경
  • Heroku에 서버 만들기

  • 프로젝트에 따라 매번 설정 확인이 필요한 파일
  • config/environments/production.rb
  • config/database.yml

  • 웹사이트를 Heroku에 공개하여 도메인 취득과 SSL화까지의 모든 절차
    Heroku에 Rails 앱을 배포하는 단계
    Heroku Postgres를 Rails 앱에서 사용하는 단계
    Rails 초학자가 넘어지기 쉬운 "자산 파이프라인"
    Rails Production 환경에서 프리컴파일할 때의 유의점
    화상이 표시되지 않기 때문에 fog라든지 S3라든지 사용한다.
    RAILS 이미지 게시 앱을 HEROKU로 움직일 때 사진을 저장하는 방법
    gem install pg가 실패했을 때의 대처법
    Rails 앱을 Heroku에 배포 할 때의 단계 요약 | 2015

    다음 작업입니다.



    postgresql이 없으면



    먼저 설치해 둡니다( homebrew 에서)
    brew install postgresql
    

    heroku에 로그인


    heroku login
    #Emailを入力
    #パスワードを入力
    

    프로젝트 디렉토리로 이동


    cd プロジェクトディレクトリ名
    

    아직 git 관리하지 않은 경우


    git init 명령으로 로컬 리포지토리를 만든 다음 커밋합니다.Rails5系は最初からgit管理状態なので「git init」は不要
    이것으로 더 이상 두렵지 않아! ? Rails 4.1에서 Rails 5.0으로 업그레이드하는 단계를 동영상으로 설명합니다.
    # 初期化
    git init
    # ディレクトリ配下ファイルをコミット対象に
    git add .
    # コミット
    git commit -m "Git on"
    

    Gemfile 수정



    元からPostgresを使っている場合は作業不要
    데이터베이스에 sqlite를 사용하는 경우 gem 'sqlite3'의 행 수정 + 추가

    Gemfile
    # gem 'sqlite3'
    gem 'sqlite3', group: [:development, :test]
    gem 'pg', group: :production
    

    파일을 수정하면 bundle
    bundle
    

    Postgresql (DB) 사용 설정


    #コマンドでDATABASE_URLを確認
    heroku config
    

    DATABASE_URL이 표시되면 OK

    database.yml에서 환경 변수 DATABASE_URL을 참조하도록 설정

    config/database.yml
    production:
    #  <<: *default
    #  database: db/production.sqlite3
      adapter: postgresql
      url: <%= ENV['DATABASE_URL'] %>
      pool: 5
      timeout: 5000
    

    커밋 작업



    프로덕션 실행에 필요한 파일을 편집한 후
    커밋해 둔다.
    # コミット
    git commit -m "Release to heroku"
    
    # --- #
    
    # ついでにGithubにあげるなら
    git push origin master
    

    Heroku 앱 만들기
    Heroku에 원격 애플리케이션 만들기
    heroku create <アプリ名>
    
     #https://xxxxx-xxxxx-xxxxx.herokuapp.com/ | https://git.heroku.com/xxxxx-xxxxx-xxxxx.git
    
    # HerokuアプリのURL、Gitリポジトリが表示される
    
    #確認
    git remote
     #heroku
    

    배포



    로컬 master 브랜치를 원격 저장소(heroku)로 push
    git push heroku master
    

    확인


    #ウェブアプリをブラウザで開く
    heroku open
    


    환영합니다

    DB를 만들지 않았기 때문에 heroku 측에서 마이그레이션 수행

    마이그레이션


    # DBのマイグレーション
    heroku run rake db:migrate
    
    # dynoの再起動
    heroku ps:restart
    
    # アプリを開く
    heroku open
    

    DB가 만들어져 볼 수 있게 되었을 것

    시간대 설정


    # タイムソーンを日本時間に変更
    heroku config:add TZ=Asia/Tokyo
    

    환경 변수 설정


    # 環境変数一覧 表示
    heroku config
    
    # 環境変数名を指定して参照
    heroku config:get ENV_NAME
    
    # 環境変数 追加
    heroku config:set ENV_NAME="value"
    
    # 環境変数 削除
    heroku config:unset ENV_VAR_NAME
    

    heroku에 배포 후 작업



    【heroku명령】create에서 destroy까지


    앱 업데이트


    git add .
    #コメントは適宜変更
    git commit -m "Fix config/environments/production.rb"
    
    git push heroku master
    

    앱 삭제


    #アプリ名の確認
    heroku apps:info
    
    #削除
    heroku apps:destroy --app アプリ名
    #アプリ名を入力すると削除完了
    
    #確認なしで1発で削除
    heroku apps:destroy --app アプリ名 --confirm アプリ名
    

    작동하지 않는 패턴 요약



    실수로 로컬 리포지토리를 생성하기 전에 heroku create를 한 경우



    원격 저장소 heroku가 없으면 heroku create <app name> 명령을 실행할 때 지불 한 git 저장소를 원격 저장소 heroku로 등록
    Gitリポジトリ 의 URL 등록
    # リモートリポジトリを追加
    
    git remote add heroku https://git.heroku.com/xxxxx-xxxxx-xxxxx.git
    

    Heroku Postgres (DB) 추가 기능 추가


    heroku config 명령으로
    DATABASE_URL이 표시되지 않으면 추가 기능을 추가합니다.<PLAN_NAME> 에는 heroku에서의 계약 플랜명이 들어간다.

    Heroku Postgres | Heroku Dev Center
    #heroku addons:create heroku-postgresql:<PLAN_NAME>
    heroku addons:create heroku-postgresql:free-dev
    
    
    #作業完了まで待ってから 確認
    heroku config
    

    더 많은 이해를 돕기 위해 ...



    [Ruby] Rails를 Heroku에 배포 할 때의 7 가지주의 사항 [Heroku]

    좋은 웹페이지 즐겨찾기