学习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 上面应该不会进行构建之类的吧…
那么,今天就到这儿吧。

bannerAds