그 중 일부는 웹 환경으로 구성하고 heroku에 띄울 생각인데, 루비처럼 사전에 세팅이 필요한 부분들이 있어서 내용 정리해둡니다.
(루비보단 훨씬 간단해요)
1. pre-setting
우선, GoLand 같은 IDE를 쓰더라도 빌드 로그 떄문에 커밋까지만 IDE에서 하는게 개인적으론 편합니다. 어차피 각종 명령 때문에 heroku client 설치가 필요하니 이참에 한번 깔아줍시다.Install heroku cli
On Mac$ brew install heroku
On Ubuntu 16+
$ sudo snap install heroku --classic
On Windows
64bit: https://cli-assets.heroku.com/heroku-x64.exe
32bit: https://cli-assets.heroku.com/heroku-x86.exe
설치가 되면
$ heroku
형태로 heroku 앱들을 제어할 수 있습니다. Install godep & Dependency setting
다음으론.. 디펜던시 잡아주기 위해 godep을 깔아서 디펜던시를 잡아줍니다.Install godep
$ go get -u github.com/tools/godep
set dependency
$ godep save ./...
2. Write Procfile
자 거의다 왔습니다. Rails는 gem file 설정부터 원래 레일즈 배포에서 하는짓들(db:migrate 등..)을 heroku 명령을 넣어주어 처리해야하는데, go의 경우는 Procfile이란 어떤 파일을 실행할지 결정해주는 파일을 통해 지정한 바이너리를 실행시킬 수 있습니다. (heroku에서 rails 배포하기)
Procfile에서 사용하는 타입이 몇가지가 있는데, 이 중 web은 LB와의 매핑을 해줄 수 있는 지시어로 보통의 경우 web을 많이 사용하게 되실 것 같습니다.
Procfile
web: yourbinaryname
command..
echo "web: testapp" > Procfile
3. Make Heroku App & Push heroku git
자 그럼 이제 heroku에도 앱을 만들어줘야합니다. (그냥 git repo 만든다고 생각하시면 편합니다.)heroku create mytestapp
만들어주시고, git remote를 앱의 이름으로 지정한 후 heroku로 푸시를 해주시면 자동으로 배포됩니다.
Setting Git
$ git init .
$ git add *
$ git commit -m 'first init'
$ heroku git:remote -a mytestapp
Push!
$ git push heroku master
배포가 완료되면 Procfile에 따라서 지정된 바이너리가 실행됩니다. (보통 main.go?)
Conclusion
루비만 거의 5년가까이 쓰다가 다른 언어를 해보려고 하니 아직 손에 좀 익지는 않습니다. 다만 golang 은근히 재미있습니다. 혹시나 관심 있다면 한번 해보시는 것도…아무튼 heroku 배포는 이정도면 쉽게 하실 수 있을것 같네요.
happy hacking / coding!
![]() |
HAHWULSecurity engineer, Gopher and H4cker! |
0 개의 댓글:
Post a Comment