前言
Docker技術發展為當前流行的微服務提供了更加便利的環境,使用SpringBoot+Docker部署和發布應用,其實也是一件比較簡單的事情。當前,前提是得有Docker的基礎。
源碼在文末
文末有項目源碼的github地址
構建一個SpringBoot項目
本人最早的一篇文章,就是教大家如何使用Spring Initialise工具,快速的創建一個SpringBoot項目,如果還不懂的,可以翻一下本人的第一篇文章,這里就不多講了。下面貼一下主要的文件內容:
pom文件的大部分內容這里就不貼了,主要貼關鍵的內容,主要的就是maven-docker的打包插件:
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Docker maven plugin -->
這里的docker.image.prefix值為:
<docker.image.prefix>happy</docker.image.prefix>
dockerDirectory配置了Dockerfile的路徑為:src/main/docker,所以,我們需要在src/main目錄下,創建docker目錄,然后創建Dockerfile文件。整體的目錄結構如下:
Dockerfile
Dockerfile文件內容如下:
FROM openjdk
VOLUME /tmp
ADD springboot-docker-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
到這里,已經完成了SpringBoot+Docker的配置了,接下來就是打包部署了。
添加測試接口
為了方便測試,可以添加一個GET請求的接口,如下:
@SpringBootApplication
@RestController
public class SpringbootDockerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDockerApplication.class, args);
}
@GetMapping(value = "/test")
public Object test() {
return "Hello SpringBoot with Docker!";
}
}
maven打包
使用maven構建Dockerfile的命令如下:(先把maven和Docker都設置為國內的源,否則需要build比較長的時間)
mvn package docker:build
在springboot-docker目錄根路徑下執行此命令即可。
需要本地安裝了Docker才能夠打包成功,否則會報錯。關於Docker的安裝,Linux的用戶可以根據我之前的文章進行安裝,其他系統的用戶可以自行搜索安裝即可。推薦使用Linux。
比如本人,Docker是安裝在Linux虛擬機上的,直接把springboot-docker目錄拷貝到Linux機器上:
執行打包命令,輸入如下:
看到BUILD SUCCESS即表示構建成功了,這時候就可以通過docker images命令,查看我們構建的鏡像了:
鏡像構建完之后,我們還可以把它推到Docker的倉庫上。這里就不展開來講了。
使用該鏡像創建容器
命令如下:
docker run -it -d --name springboot -p 8080:8080 happy/springboot-docker
這里創建並且啟動一個容器,命名為springboot,映射端口為8080:8080
可以通過如下命令查看啟動日志:
docker logs springboot
訪問測試接口
源碼下載
源碼我放在github上,歡迎大家關注:
https://github.com/Happy4Java/hello-springboot
關注公眾號領資料
搜索公眾號【Happyjava】,回復【電子書】和【視頻】,即可獲取大量優質電子書和大數據、kafka、nginx、MySQL等視頻資料
原創聲明
本文發布於掘金號【Happyjava】。Happy的掘金地址:https://juejin.im/user/5cc2895df265da03a630ddca,Happy的個人博客:(http://blog.happyjava.cn)[http://blog.happyjava.cn]。歡迎轉載,但須保留此段聲明。