スポンサーリンク

【Intellij】SpringBootをdockerでやってみる【Windows】

スポンサーリンク

Spring BootをDockerで始める

Quick Start Guideは以下にあります.以下をIntellij経由で実行しようとしてもうまく出来なかったので記録しておきます.

Getting Started | Spring Boot with Docker
Learn how to create a Docker container from a Spring Boot application with Maven or Gradle

docker fow windowsのインストール

以下からdocker for windowsをインストールしてください

Just a moment...

全てよしなにやってくれます.なお,WSL2をカーネルにインストールしてください,といったエラーがWindowsの再起動時に表示される可能性があります.この場合,リンク張ってある通り,手順 4 – Linux カーネル更新プログラム パッケージをダウンロードするを実行して,WSL2をインストールします.

WSL のインストール
コマンド wsl --install を使用して Linux 用 Windows サブシステムをインストールします。 Windows コンピューター上で、好みの Linux ディストリビューションによって実行される Bash ターミナルを使用します。Ubuntu、Debian、SUSE、Kali、Fedora、Peng...

Spring Bootアプリケーション

Spring Bootアプリケーションは公式サイト記載のものと同様のものを使用します.これは別に今まで作成したSpring Bootアプリケーションのいずれでも勿論問題ないです.

以下のクラスを作製します.

package hello;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 @SpringBootApplication
 @RestController
 public class Application {
 @RequestMapping("/")
   public String home() {
     return "Hello Docker World";
   }
 public static void main(String[] args) {
     SpringApplication.run(Application.class, args);
   }
 }

Dockerfileの準備

所定の位置に”Dockerfile”を作製します

Dockerのrun configurationの設定

Dockerfileを選択し,Dockerfileを指定します.また,Container nameに任意で名称を付けます.

下記の場所をクリックし,Docker for Windowsを選択します.

Binding Portsを設定する

hostのportとdockerのportのbindingを設定します.serverを8080で起動させる場合,以下のようにしてhostの8080とcontainerの8080の接続を設定します.

実行する

一度,mvn packageを実施してから(build後のtargetフォルダ中の***.jarが作成されてから),先ほど作製したdocker pluginを起動します.

正常に終了できれば,以下のようにdeployがsuccessした旨が表示されます.

docker for DesktopのアプリケーションでもContainerが起動していることを確認することができます.

また,LogコンソールにはSpring Bootが起動し,Tomcatが8080portで起動した旨が表示されます.(これは通常のSpring Bootのログ出力と同様です)

localhost:8080にアクセスする

ブラウザでlocalhost:8080にアクセスします.

Troubleshoot

Docker起動時にDocker Daemonに接続できない

dockerが正しく起動していない可能性があります.Docker for Desktopを再起動し,正しく起動できていることを確認してください

また,Docker for Windowsの場合,場合によってはTLS接続では上手くいかないことがあるようですので,以下にチェックを入れます.(通常はチェックなしで接続可能です)

また,上記設定後に,IntellijでTCP Socketで接続するにRun Configurationを変更します.

8080portに接続できない

WindowsのFirewallでブロックされている可能性があります.Firewallを外しましょう.

IntellijのDocker Plugin詳細を知りたい

以下が詳細なリンクです.結構詳しく書いてくれています.基本的にRun Configurationで設定していることは,docker run -xxxxx のオプションに相当する箇所になります.そのため,同様の単語でdocker documentの当該コマンドの部分を確認すれば,やりたいことを実行できるようになります.

Docker | IntelliJ IDEA
タイトルとURLをコピーしました