[ Rails on Heroku ] 간단한 루비 레일즈 앱 구성 및 Heroku에 배포하기


[ Rails on Heroku ] 자주 사용하는 heroku 명령어 정리 (https://www.hahwul.com/2019/04/what-is-heroku.html) [ Rails on Heroku ] 간단한 루비 레일즈 앱 구성 및 Heroku에 배포하기 (https://www.hahwul.com/2019/04/ruby-on-rails-distribute-heroku.html) [ Rails on Heroku ] Heroku란? 빠르게 환경 구성하기 (https://www.hahwul.com/2019/04/favorite-command-heroku.html)


이전 포스팅에서 heroku 환경 세팅을 했으니 앱을 만들고 배포해봅시다. 개발은 RubyMine 으로 진행할테니 RubyMine에서 프로젝트를 하나 만들겠습니다. (vim으로 하시는분은 그냥 명령어로 구성해주시믄 됩니다)

or

1
2
rails new yourapp

Make Rails App

대충 간단하게 앱이랑 페이지 하나 만들어봅시다. 우선 컨트롤러 하나 만들어주시고..

1
2
rails g controller hahwul-web

내용을 보여줄 View도 만들어줍시다.

1
2
vim views/hahwul-web/index.erb

내용은 대충…

1
2
asdf

마지막으로 route.rb에서 view 경로를 추가해주어 페이지 접근이 가능하도록 설정해줍시다.

config/route.rb

1
2
3
4
Rails.application.routes.draw do
  get 'hahwul-web/index'
end

이정도 하면 static한 페이지 구성은 끝나네요. 나중에 기능 붙이실 때 controller에 기능 넣어주시면 됩니닷. 아무튼, 로컬에서 실행하고 웹 접근하면..

잘 나오네요.

Rails app heroku에 배포

자 그럼 이제 rails app을 heroku로 배포해봅시다. 배포에 앞서 하나 꼭 알고가야할 내용이 있는데 heroku는 무료 플랜에선 기본적으로 postgresql을 지원합니다. 그러다 보니 mysql, sqlite 등 다른 db로 설정된 경우 배포 시 에러가 날 수 있습니다.

Gemfile에 pg 설치될 수 있도록 수정해줍시다.

1
2
3
4
5
6
7
group :development do
  gem 'sqlite3'
end
group :production do
  gem 'pg'
end

로컬의 경우 환경 별 실행할 db도 별도로 지정해야하는데(database.yml?) heroku의 경우 배포 시 heroku가 직접 database.yml을 건드려서 설정합니다. (덕분에 우린 heroku 서버의 db password를 모르게되죠.) 그리서 별도로 설정할게 없습니다.

보통 git에서 작업할 때 이 다음 git push로 올리는데, 대신 heroku cli를 통해 heroku쪽 git으로 올려야합니다.

1
2
heroku create

이렇게되면 .git 내 정보가 github가 아닌 heroku git을 바라보게 됩니다. 그다음 배포하듯이 해주시면..

1
2
3
git add * ; git commit -m 'commit'
git push heroku master

했더니 루비 에러가 빡(아래에서.. solv..)

remote: ! remote: ! An error occurred while installing ruby-2.3.7 remote: ! remote: ! This version of Ruby is not available on Heroku-18. The minimum supported version remote: ! of Ruby on the Heroku-18 stack can found at: remote: ! remote: ! https://devcenter.heroku.com/articles/ruby-support#supported-runtimes remote: !

아무튼 다음 db migrate 해줍시다. (여긴 model 들어가면 필수가 되겠죠)

1
2
3
heroku run rails db:migrate
heroku open

이름 바꾸기

로컬에서 heroku 명령으로 create할 시 임시 이름이 붙습니다. 아래 명령어로 변경이 가능합니다.

1
2
heroku apps:rename newname

1
2
3
heroku apps:rename hahwul-phoenix
Renaming intense-garden-98803 to hahwul-phoenix... done

에러 해결

아까 위에서 난 에러입니다. 우선 내용을 보면 이렇습니다.

https://devcenter.heroku.com/articles/ruby-support#supported-runtimes

1
2
3
4
* 2.4.6 : patchlevel 354, Rubygems: 2.6.14.4
* 2.5.5: patchlevel 157, Rubygems: 2.7.6.2
* 2.6.2: patchlevel 33, Rubygems: 3.0.3

아… heroku에서 Ruby의 최소 지원 버전이 2.4.6부터입니다.. 전 2.3.7에서 진행했었구요. rvm으로 2.4.6 이상으로 변경하셔서 사용하시면 됩니다. (혹시나 설치 안되셔있으면 아래 명령으로..)

1
2
curl -L get.rvm.io | bash

rvm으로 해당 버전 설치해줍시당

1
2
rvm install 2.4.6

하고 Rubymine의 preference , project의 phase별 ruby sdk를 2.4.6 이상으로 바꾸고 세팅해주시면 됩니다.(bundle ~~)


[ Rails on Heroku ] 자주 사용하는 heroku 명령어 정리 (https://www.hahwul.com/2019/04/what-is-heroku.html) [ Rails on Heroku ] 간단한 루비 레일즈 앱 구성 및 Heroku에 배포하기 (https://www.hahwul.com/2019/04/ruby-on-rails-distribute-heroku.html) [ Rails on Heroku ] Heroku란? 빠르게 환경 구성하기 (https://www.hahwul.com/2019/04/favorite-command-heroku.html)


Licensed under CC BY-NC-SA 4.0
Last updated on Jul 10, 2021 01:05 +0900