首頁>技術>

1.1 建立SpringBoot的Web專案

l 建立SpringBoot專案

l 選擇專案依賴項

l 建立HelloController,新增index方法,返回字串:Hello Docker!

@RestController

public class HelloController {

@RequestMapping("/")

public String index() {

return "Hello Docker!";

}

}

l 設定application.properties

#設定應用名

spring.application.name=Bootstrap Spring Boot

#設定啟動埠

server.port=9090

#熱部署生效

spring.devtools.restart.enabled: true

1.2 Web專案新增Docker支援

1.2.1 新增Docker外掛

l pom.xml檔案新增相關屬性

<properties>

<java.version>1.8</java.version>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<docker.image.prefix>springboot</docker.image.prefix>

<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>

</properties>

l pom.xml中新增Docker外掛

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

<plugin>

<groupId>com.spotify</groupId>

<artifactId>docker-maven-plugin</artifactId>

<version>1.0.0</version>

<configuration>

<imageName>${docker.image.prefix}/${project.artifactId}</imageName>

<imageTags>

<imageTag>${maven.build.timestamp}</imageTag>

</imageTags>

<baseImage>java</baseImage>

<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>

<dockerDirectory>src/main/docker</dockerDirectory>

<resources>

<resource>

<targetPath>/</targetPath>

<directory>${project.build.directory}</directory>

<include>${project.build.finalName}.jar</include>

</resource>

</resources>

</configuration>

</plugin>

</plugins>

</build>

1.2.2 新增Dockerfile檔案

在專案路徑(src/main/docker)下新增dockerfile檔案,檔案內容如下:

FROM openjdk:8-jdk-alpine

VOLUME /tmp

ADD SpringBootInDocker-1.0.0.1-SNAPSHOT.jar app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

1.3 將專案部署至Docker

1.3.1 檢測環境

檢視Linux系統是否安裝Docker、Java、Maven等環境

1.3.2 測試專案

l 打包Java專案

mvn pacakge

打包結果如下:

l 測試專案是否正常執行

java -jar target/SpringBootInDocker-1.0.0.1-SNAPSHOT.jar

執行結果如下:

l 訪問專案:curl http://192.168.56.99:9090

1.3.3 生成Docker映象

mvn package docker:build

檢視結果如下:

1.3.4 執行Docker映象

docker run -p 9090:9090 -t springboot/springbootindocker

1.3.5 測試Docker專案

curl http://192.168.56.99:9090

1.4 相關問題

1.4.1 mvn docker:build fails with "{}->unix://localhost:80: Connection reset by peer

相關問題:https://github.com/spotify/docker-maven-plugin/issues/357

原因:docker映象名稱不支援大寫字母

解決方案:pom.xml檔案中的imageName修改成小寫字母,即project.artifactId改為小寫

1.4.2 other

1.5 相關資料

l 官方資料:https://spring.io/guides/gs/spring-boot-docker/

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • AngularJS、 Angular 2、Angular 4、Angular 8,該選哪個?