以前發過一些docker相關的文章,也發過一些Springboot相關的文章,今天這篇文章是教大家如何在win10下面基於docker構建Springboot項目
工具 & 環境
maven
jdk
idea
docker
win10
win10上安裝Docker
軟件安裝這個就不多說了,大家可以參考這個帖子 :鏈接如下:https://blog.csdn.net/hunan961/article/details/79484098 主要注意兩點就行了: 1.允許版本:64位Windows 10 Pro,專業版、企業版和教育版 2.開啓虛擬化。安裝完成後,看到一個馱着很多集裝箱的鯨魚沒,盤它!錯了 ,點擊啓動它。docker 安裝完默認的docker hub 網址是 hub.docker.com ,註冊一下,後面用到,比如,博主註冊的賬戶是492782442
創建一個Springboot項目並且整合docker
如圖:使用idea的傻瓜式操作創建一個Springboot項目項目創建好以後在pom裏面加入 docker-maven-plugin
<properties>
<docker.image.prefix>492782442</docker.image.prefix>
</properties>
<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腳本的執行目錄,創建docker目錄並編寫Dockerfile腳本
FROM cantara/alpine-openjdk-jdk8
COPY spring-boot-docker.jar /spring-boot-docker.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/spring-boot-docker.jar"]
只有三行腳本代碼,爲防止看不懂貼一下Docker語法:
FROM 基礎鏡像base image
RUN 執行命令
ADD 添加文件
COPY 拷貝文件
CMD 執行命令
EXPOSE 執行命令
WORKDIR 指定路徑
MAINTAINER 維護者
ENV 設定環境變量
USER 指定路徑
VOLUME 邏輯卷掛載點mount point
並根據實際情況使用。
可以看到Dockerfile裏面有跟jar包有關的,那麼在執行Dockerfile之前,install一下項目,並且使用 finalName
屬性指定打jar包後的包名,
<build>
<finalName>spring-boot-docker</finalName>
...
直接使用idea的maven插件即可,點擊install,構建jar包生成的jar包如圖所示
構建docker鏡像
學過maven語法和docker語法的都知道很多場景的命令方式,但是,有界面傻瓜操作不用不是傻嗎,來,點開idea的右側maven那一欄,Plugins下面有docker,展開點擊第一個構建日誌如下:
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building spring-boot-docker 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- docker-maven-plugin:1.0.0:build (default-cli) @ spring-boot-docker ---
[INFO] Using authentication suppliers: [ConfigFileRegistryAuthSupplier]
[INFO] Copying D:\博客\spring-boot-2.0-leaning\spring-boot-docker\target\spring-boot-docker.jar -> D:\博客\spring-boot-2.0-leaning\spring-boot-docker\target\docker\spring-boot-docker.jar
[INFO] Copying src\main\docker\Dockerfile -> D:\博客\spring-boot-2.0-leaning\spring-boot-docker\target\docker\Dockerfile
[INFO] Building image 492782442/spring-boot-docker
Step 1/3 : FROM cantara/alpine-openjdk-jdk8
---> b250403334b3
Step 2/3 : COPY spring-boot-docker.jar /spring-boot-docker.jar
---> c6466f2eafe9
Step 3/3 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/spring-boot-docker.jar"]
---> Running in 03f67a5ff7de
Removing intermediate container 03f67a5ff7de
---> c6aff6fdadd4
ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
Successfully built c6aff6fdadd4
Successfully tagged 492782442/spring-boot-docker:latest
[INFO] Built 492782442/spring-boot-docker
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.356 s
[INFO] Finished at: 2019-05-23T17:55:29+08:00
[INFO] Final Memory: 32M/330M
[INFO] ------------------------------------------------------------------------
構建好的鏡像去哪看?docker本地倉庫啊,這裏再照顧對docker命令不熟悉的朋友,可以使用idea的界面去看 。先把界面調出來在界面點開連接之後,其他的都是傻瓜式交互了試試本地基於鏡像創建容器。在鏡像上點擊Create container填寫好端口映射之後,點擊Run 啓動,然後在idea裏面可以看到相關日誌,啓動成功,完美!那麼到這是不是就結束了呢?顯然不是,咱們只是在本地玩玩,遠程怎麼玩呢?
當然得把鏡像推到遠程倉庫啊!
回到我們之前說的 去hub.docker.com 註冊好了以後,創建 Repository
怎麼理解呢,就跟你推送新項目到github一樣就行了。選擇公開的,私有的要錢創建不了! 這裏我們假設你們還是docker零基礎,使用idea的頁面進行操作,
鼠標右鍵鏡像後點擊push image太慢了不好看進度,不裝逼,直接用命令行了!果然命令行還是賊快完成!現在就可以在遠程機器上pull下來愉快的玩耍了!
推薦閱讀
徒手擼一個 Spring Boot 中的 Starter ,解密自動化配置黑魔法!
關注一下,盡知JAVA事!