使用Docker在Spring Boot上运行

首先

在这篇文章中,我们会使用Docker来运行Spring Boot,并显示出”hello world”。由于我正在学习Docker,所以如果有任何错误,请留下评论。

环境

    • 言語

java8

ビルドシステム

maven

创建Spring项目

DL该项目的框架。

您可以从这里创建模板。

在“Dependencies”部分搜索并添加“web”和“devtools”。安装“devtools”可以在文件更改时自动编译,并通过重新加载浏览器来更新显示。如果不安装,“mvnw spring-boot:run? mvn spring-boot:run?”每次都要重新执行才能在浏览器中更新显示。

然后,在Generate Project上下载项目的模板。

image.png

下载后,解压zip文件,将项目放置到喜欢的位置。

你好,世界的描述

将src/main/java/com/example/demo/DemoApplication.java(由于项目名称为demo,因此文件名更改为DemoApplication.java)进行修改,如下所示。

如果您曾经使用过Web框架,可能会了解 @RequestMapping(“/”) 这个注解。当URL的路径是根路径时,被标注了这个注解的方法会被调用。也就是说,当访问 http://localhost/ 时,将执行 public String home()方法。如果使用了 @RequestMapping(“/hoge”) 这个注解,将会在 http://localhost/hoge 上执行。

package com.example.demo;

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 DemoApplication {

    @RequestMapping("/")
    public String home() {
        return "Hello Docker World";
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

用于在Docker上运行的配置

下一步是创建用于在Docker中运行的docker-compose.yml文件。

创建 docker-compose.yml 文件

我们将创建以下的docker-compose.yml文件。

通过将volumes设置为.:/app,可以实现主机PC(当前目录)和Docker容器(/app目录)的共享。

所以,通过将命令设置为”./mvnw spring-boot:run”,可以启动Spring Boot项目。

version: '2'
services:
    app:
        image: openjdk:8-jdk-alpine
        ports:
            - "8080:8080"
        volumes:
            - .:/app
        working_dir: /app
        command: ./mvnw spring-boot:run

推动项目

请在具有docker-compose.yml文件的页面上执行以下命令。
这样,我们的项目将在Docker容器中进行构建和执行。

オプション備考-dバックグランドで実行
docker-compose up -d

如果稍等几分钟,我认为你可以得到以下的hello world。
用docker-machine ip获取IP地址,端口号是8080。

image.png

当你修改并保存了Hello Docker World后,稍等片刻然后刷新浏览器,你会发现页面内容也会发生变化。
这是因为我们在Docker容器中进行了文件夹共享,并且安装了devtools,并执行了”./mvnw spring-boot:run”命令所致。

最后

我已经将完成的项目发布在Github上了 –
https://github.com/ferretdayo/spring-with-docker

我希望接下来可以在数据库协同等方面进行各种工作~

广告
将在 10 秒后关闭
bannerAds