学习Docker+Spring-boot的基础知识
首先
最近在学习使用Java,特别是Spring框架。
顺便想试试用Docker来运行,所以要进行相关的配置。
前提
Docker可用。
省略设置方法。
环境
-
- OS: macOS Mojave
- Docker: Docker for Mac v2.0.0.3
Java(Spring boot)的配置
下载草稿
使用Spring Initializr快速创建项目的原型。
以下是指定的内容。未提及的部分可随意填写。
項目内容ProjectGradle projectLanguageJavaSpring boot2.2.0(SNAPSHOT)packagingjarJava version11DependenciesLombok,Web
稍微修改应用程序。
我决定对其进行轻微修正,虽然它已经可以工作,但只是在工作中而已。
内容只是简单地返回响应。
首先,创建一个名为IndexController.java的文件,与自动生成的类并列。
创建的文件内容如下所示。
$ touch src/main/java/...(package)/IndexContoroller.java
package hoge;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class IndexController {
@GetMapping("index")
public String getIndexPage() {
return "Hello World!";
}
}
容器的设置
我会一点一点地写Dockerfile。
根据我的调查,大多数人都是在本地构建后在Docker中运行,但我想要完全使用Docker,所以我会复制所需的文件进行构建和执行。
实际上,最好不要频繁使用COPY命令,但是因为我不知道解决方法,所以暂时只能这样做。
Dockerfile 可以被看作是一个脚本,用于构建和配置 Docker 映像。
FROM openjdk:latest
RUN mkdir /app
WORKDIR /app
COPY ./gradlew /app
COPY ./build.gradle /app
COPY ./settings.gradle /app
COPY ./src /app/src
COPY ./gradle /app/gradle
ENTRYPOINT ["sh", "./gradlew", "bootRun"]
实施/执行
我已经准备好了,所以试着执行一下。
从本地发起请求,如果能够得到正确的响应,那就没问题了。
$ docker build -t spring-docker ./
# Springがport8080で起動するのでローカルからは3000にする
$ docker run -p 3000:8080 spring-docker
如果能够无问题地启动,可以随便用curl进行确认。
确认如下所示,即可确认OK。
$ curl localhost:3000/index
Hello World!
总结
这次我尝试了 Docker + Spring Boot 的配置。
比我想象的要容易,而且我也想再次接触一下 Java,所以想再做点什么。
虽然我在前面提到过,但 Docker 上面应该不会进行构建之类的吧…
那么,今天就到这儿吧。