山崎屋の技術メモ

IT業界で働く中で、気になること、メモしておきたいことを書いていきます。

Spring boot で作ったアプリを Heroku にデプロイして全世界に公開

以前、Heroku にユーザ登録した記事を書きました。
www.shookuro.com


では、実際に Spring boot で作成した Web アプリを Heroku にデプロイして公開してみたいと思います。

アプリは "Hello! Spring Boot!!" という文字列を表示するだけの簡単なものです。
作り方は以前の記事を参考にしてください。
yyama1556.hateblo.jp

では、さっそくやってみます。

Git 管理下に置く

まず、Git の設定。

コマンドプロンプトでプロジェクトのルートフォルダに移動し、[ git init ]で ソースを GIT で管理させます。

そのあと [ git add --all ]で git のインデックスに登録。

その後、[ git commit -m "web app" ] のようにコミットします。

コマンドの入出力の例です。

C:\Users\yyama>cd C:\workspace\demo

C:\workspace\demo>git init
Initialized empty Git repository in C:/workspace/demo/.git/

C:\workspace\demo>git add --all

C:\workspace\demo>git commit -m "web app"
[master (root-commit) e2d7aaa] web app
 10 files changed, 486 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 .mvn/wrapper/maven-wrapper.jar
 create mode 100644 .mvn/wrapper/maven-wrapper.properties
 create mode 100644 mvnw
 create mode 100644 mvnw.cmd
 create mode 100644 pom.xml
 create mode 100644 src/main/java/org/yyama/demo/DemoApplication.java
 create mode 100644 src/main/java/org/yyama/demo/DemoController.java
 create mode 100644 src/main/resources/application.properties
 create mode 100644 src/test/java/org/yyama/demo/DemoApplicationTests.java

Heroku のセットアップ

では、Heroku のほうのセットアップに移ります。

[ heroku create ] と入力し、Heroku 側でアプリケーションを受け入れられるようにします。出力にあるように[ https://fast-taiga-15372.herokuapp.com/ ]がこのアプリへの URL になります。

C:\workspace\demo>heroku create
Creating app... done, fast-taiga-15372
https://fast-taiga-15372.herokuapp.com/ | https://git.heroku.com/fast-taiga-15372.git

この時点で Heroku の自分のダッシュボードには、アプリが表示されるようになります。
f:id:yyama1556:20170922122304p:plain

続いてコマンドプロンプトで [ git push heroku master ]と入力すると、ずらずらとログが吐かれてデプロイが行われます。

C:\workspace\demo>git push heroku master
Counting objects: 26, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (17/17), done.
Writing objects: 100% (26/26), 46.71 KiB | 0 bytes/s, done.
Total 26 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Java app detected
remote: -----> Installing OpenJDK 1.8... done
remote: -----> Executing: ./mvnw -DskipTests clean dependency:list install
remote:        /tmp/build_a5c941b997d2cd319183cfbb0da9e662
remote:        Downloading https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.zip
remote:        ..................................................................................................................................................................................................................................................................................................................................................................................................................................................
remote:        Unzipping /tmp/build_a5c941b997d2cd319183cfbb0da9e662/.m2/wrapper/dists/apache-maven-3.5.0-bin/6ps54u5pnnbbpr6ds9rppcc7iv/apache-maven-3.5.0-bin.zip to /tmp/build_a5c941b997d2cd319183cfbb0da9e662/.m2/wrapper/dists/apache-maven-3.5.0-bin/6ps54u5pnnbbpr6ds9rppcc7iv
remote:        Set executable permissions for: /tmp/build_a5c941b997d2cd319183cfbb0da9e662/.m2/wrapper/dists/apache-maven-3.5.0-bin/6ps54u5pnnbbpr6ds9rppcc7iv/apache-maven-3.5.0/bin/mvn
remote:        [INFO] Scanning for projects...

~~~ (略) ~~~

remote:        [INFO] ------------------------------------------------------------------------
remote: -----> Discovering process types
remote:        Procfile declares types     -> (none)
remote:        Default types for buildpack -> web
remote:
remote: -----> Compressing...
remote:        Done: 60.7M
remote: -----> Launching...
remote:        Released v3
remote:        https://fast-taiga-15372.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/fast-taiga-15372.git
 * [new branch]      master -> master

では、[ https://fast-taiga-15372.herokuapp.com/ ]にアクセスしてみます。

f:id:yyama1556:20170922121124p:plain


Heroku 向けの設定なども非常に簡単でした。
これでアプリが全世界に公開できました。

アプリ名の変更

最後にアプリ名を変更してみましょう。

コマンドプロンプトで、「heroku rename アプリ名」と入力します。するとアプリの名前や アプリの URL、および Heroku の git リモートアドレスが自動で変更できます。ここではアプリ名は「hello-heroku-yyama」としました。これでアプリの URL は
https://hello-heroku-yyama.herokuapp.com/ に変更されました。しばらく置いておくのでアクセスしてみてください。


アプリ名はグローバルで一意な必要があるみたいで、誰かがすでに使用している場合「Name is already taken」と怒られます。

次回は Heroku の PostgreSql を使用してみます。
【Heroku Postgresql】アドオンを追加し、テーブル操作を行う - 山崎屋の技術メモ

今日はここまで。でわ。

プロフェッショナルのための 実践Heroku入門 プラットフォーム・クラウドを活用したアプリケーション開発と運用 (書籍)

プロフェッショナルのための 実践Heroku入門 プラットフォーム・クラウドを活用したアプリケーション開発と運用 (書籍)

HerokuではじめるRailsプログラミング入門

HerokuではじめるRailsプログラミング入門

LINE BOTを作ろう!  Messaging APIを使ったチャットボットの基礎と利用例

LINE BOTを作ろう! Messaging APIを使ったチャットボットの基礎と利用例