Hello World를 Heroku에 배포

소개



이전 기사 Spring Initializer로 Hello World에서 만든 애플리케이션을 게시합니다.
Heroku를 이용하고 싶기 때문에, 공식 사이트 Git을 사용한 배포 에 따라 진행합니다.

준비



Git이 설치되어 있는지 확인



git push로 배포하기 때문에 Git이 설치되어 있어야합니다.
$ git --version
git version 2.20.1 (Apple Git-117)

Heroku 계정 생성



htps // jp. 헤로쿠. 코 m / 칭찬
"신규 등록"> 필요 사항 입력 > 메일 인증

Heroku CLI 설치


$ brew tap heroku/brew && brew install heroku

$ heroku --version
heroku/7.47.6 darwin-x64 node-v12.16.2

The Heroku CLI
htps : //에서 v 선 r. 헤로쿠. 코 m / r 치 c ぇ s / 헤로 쿠 - c ぃ

배포까지의 단계



로컬 리포지토리 설정



먼저 배포하려는 프로젝트를 Git 관리로 설정합니다.
# 前回作成したプロジェクトのルートディレクトリに移動
$ cd demo 
$ git init
Initialized empty Git repository in /Users/xxxx/workspace/demo/.git/
$ git add .
$ git commit -m "first commit"

원격 설정


$ heroku create
Creating app... done, ⬢ stormy-headland-99999
https://stormy-headland-99999.herokuapp.com/ | https://git.heroku.com/stormy-headland-99999.git

$ git remote -v
heroku  https://git.heroku.com/stormy-headland-99999.git (fetch)
heroku  https://git.heroku.com/stormy-headland-99999.git (push)

새로운 Heroku 앱의 경우
htps : //에서 v 선 r. 헤로쿠. 코 m / 자 / 아 rc c ぇ s / 기 t # 후 r 아 - w w 헤로 쿠 - 아 p

heroku create​ CLI 명령은 연관된 빈 Git 리포지토리와 함께 Heroku에 새 빈 응용 프로그램을 만듭니다. 앱의 루트 디렉토리에서 이 명령을 실행하면 빈 Heroku Git 리포지토리가 로컬 리포지토리의 원격으로 자동으로 설정됩니다.

배포(push)


$ git push heroku master

remote:        [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project demo: Fatal error compiling: invalid target release: 11 -> [Help 1]

ERROR

분명히 heroku의 디폴트 환경이 JDK1.8이기 때문에, 그 이외의 버젼을 사용하고 싶을 때는 system.properties에 설정이 필요하다는 것.

Supported Java versions
htps : //에서 v 선 r. 헤로쿠. 코 m / 아 rc c ぇ s / 그럼 ぁ すっぽ rt

루트 디렉토리 (pom.xml과 동일한 계층 구조)에 다음을 배치

system.properties
java.runtime.version=11
$ git add system.properties
$ git commit -m 'add system.properties'
$ git push heroku master

remote:        [INFO] ------------------------------------------------------------------------
remote:        [INFO] BUILD SUCCESS
remote:        [INFO] ------------------------------------------------------------------------
remote:        [INFO] Total time:  16.410 s
remote:        [INFO] Finished at: 2020-12-31T09:06:48Z
remote:        [INFO] ------------------------------------------------------------------------
remote: -----> Discovering process types
remote:        Procfile declares types     -> (none)
remote:        Default types for buildpack -> web
remote: 
remote: -----> Compressing...
remote:        Done: 75.3M
remote: -----> Launching...
remote:        Released v3
remote:        https://stormy-headland-99999.herokuapp.com/ deployed to Heroku
remote: 
remote: Verifying deploy... done.
To https://git.heroku.com/stormy-headland-99999.git

SUCCESS

터미널에 출력 된 https://git.heroku.com/stormy-headland-99999.git에 액세스 ... 그러나 방법 없음으로 액세스 할 수 없습니다

이유는 간단했고 액세스하는 URL이 다릅니다.
remote:        https://stormy-headland-99999.herokuapp.com ⇦ *こっちにアクセス
remote: 
remote: Verifying deploy... done.
To https://git.heroku.com/stormy-headland-99999.git

다시 https://stormy-headland-99999.herokuapp.com에 액세스하면 성공적으로 배포 된 환경에서 HTML 내용이 표시되었습니다.

여기서 하나의 질문 - 원격 저장소는 어떻게합니까?



내 GitHub에 Repository를 만들고 프로젝트 관리를 시도했지만 지금 Heroku를 원격으로 설정했습니다 ... 괜찮습니까?

결과, 괜찮았습니다. 지금이라고 heroku만이 설정되어 있습니다만, 여기에 자신의 GitHub의 리모트 리포지토리도 추가하면 됩니다.
$ git remote
heroku
  • GitHub에서 빈 리포지토리를 만듭니다.
  • 그러면 초기화 방법이 몇 가지 제시됩니다. 이미 프로젝트를 만들었으므로 "…or push an existing repository from the command line"의 절차를 따릅니다.

  • git remote add origin https://github.com/e-onm/Spring_Initializer.git 실행.
  • 브랜치 이름은 지금 master 그대로 좋았기 때문에 이후는 스킵
  • 원격 설정이 추가되었음을 확인했습니다.
  • $ git remote
    heroku
    origin
    

    origin을 지정하여 push. 문제없이 할 수있었습니다.
    $ git push origin master
    Username for 'https://github.com': e-onm
    Password for 'https://[email protected]': 
    Enumerating objects: 43, done.
    Counting objects: 100% (43/43), done.
    Delta compression using up to 4 threads
    Compressing objects: 100% (30/30), done.
    Writing objects: 100% (43/43), 53.89 KiB | 5.99 MiB/s, done.
    Total 43 (delta 5), reused 0 (delta 0)
    remote: Resolving deltas: 100% (5/5), done.
    To https://github.com/e-onm/Spring_Initializer.git
     * [new branch]      master -> master
    

    Heroku에 배포하고 싶을 때 다시
    $ git push heroku master
    

    그렇다면 괜찮을 것 같네요.

    또 다른 질문 - 로그는 어떻게 보입니까?



    다음 명령으로 볼 수 있습니다.
    $ heroku logs
    
    $ heroku logs help
    display recent log output
    
    USAGE
      $ heroku logs
    
    OPTIONS
      -a, --app=app        (required) [default: stormy-headland-70297] app to run command against
      -d, --dyno=dyno      only show output from this dyno type (such as "web" or "worker")
      -n, --num=num        number of lines to display
      -r, --remote=remote  git remote of app to use
      -s, --source=source  only show output from this source (such as "app" or "heroku")
      -t, --tail           continually stream logs
      --force-colors       force use of colors (even on non-tty output)
    
    DESCRIPTION
      disable colors with --no-color, HEROKU_LOGS_COLOR=0, or HEROKU_COLOR=0
    
    EXAMPLES
      $ heroku logs --app=my-app
      $ heroku logs --num=50
      $ heroku logs --dyno=web --app=my-app
      $ heroku logs --app=my-app --tail
    

    좋은 웹페이지 즐겨찾기