1、本方案要解決場景?
想直接通過本地 IDEA 將最新的代碼部署到遠程服務器上。
2、本方案適用于什么樣的項目?
- 項目是一個 Spring Boot 的 Java 項目。
- 項目用 maven 進行管理。
- 項目的運行基于 docker 容器(即項目將被打成 docker image,并最終以容器的方式來運行)。
3、本方案對于遠程服務器的要求?
該服務器是用來最終運行項目的,所以對它的要求是:已安裝了 Docker,并能夠正常拉取鏡像。
4、配置步驟
4.1、SSH 配置
本方案是要通過本地的 IDEA 連接遠程服務器進行操作的,所以我們需要先在 IDEA 中配置一個 SSH,如下圖:
找到 IDEA 的「設置」
添加 SSH 配置
4.2、Docker 配置
通過此配置,我們可以連接到遠程服務器上的 Docker 守護進程(即配置了一個Docker服務器,「4.4」中會用到),如下圖:
【5】中下拉列表中可選的SSH配置來自「4.1」中的配置。
4.3、SpringBoot 項目
需要注意的是用于定義和構建該項目Docker鏡像的 Dockerfile 要放在項目 jar 包所在目錄的同級(這里提到的項目 jar 包是通過maven package 命令生成的 jar包),否則,在通過 Dockerfile 創建鏡像,執行到 ADD target/jnew-whatcell-api.jar 的時候,會出現找不到 jnew-whatcell-api.jar 的情況。
4.4、運行配置
上圖中的【綁定端口】如果頁面上沒有該配置,可通過下圖添加上:
對于以上的配置操作,我們可以這樣理解:指定在一臺安裝了 Docker 的遠程服務器上,基于「構建」中配置的信息創建一個鏡像,并根據「運行」中配置的信息將此鏡像運行。其中,通過「執行前」中的操作,將項目打成 jar 包,該 jar 包將在「構建」中的 Dockerfile 中使用(「4.3」中的Dockerfile)。
4.5 運行
選擇「運行配置」,點擊「運行」,如下圖: