使用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上下载项目的模板。

下载后,解压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容器中进行构建和执行。
docker-compose up -d
如果稍等几分钟,我认为你可以得到以下的hello world。
用docker-machine ip获取IP地址,端口号是8080。

当你修改并保存了Hello Docker World后,稍等片刻然后刷新浏览器,你会发现页面内容也会发生变化。
这是因为我们在Docker容器中进行了文件夹共享,并且安装了devtools,并执行了”./mvnw spring-boot:run”命令所致。
最后
我已经将完成的项目发布在Github上了 –
https://github.com/ferretdayo/spring-with-docker
我希望接下来可以在数据库协同等方面进行各种工作~