IDEA2021.2配置docker如何將springboot項目打成鏡像一鍵發(fā)布部署
之前博客已經(jīng)談到配置docker遠程鏈接服務,這里再介紹如何在IDEA中配置docker,將項目部署到服務器上
前文
idea2021激活教程
https://www.yuque.com/docs/share/b996d27e-c888-45f2-bb1e-f6db5efe2485?#
http://www.fzitv.net/article/178193.htm
去插件中心安裝Docker插件,安裝完重啟IDEA。這個簡單
配置連接遠程docker,打開Docker插件,新建連接,在Engine API URL處輸入服務器IP地址:2375。出現(xiàn)Connection successful代表鏈接成功,否則需要看看ip端口是否是通的

新建一個springboot項目,在pom文件中docker-maven-plugin插件,直接復制
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.1</version>
<!--將插件綁定在某個phase執(zhí)行-->
<executions>
<execution>
<id>build-image</id>
<!--將插件綁定在package這個phase上,也就是說,用戶只需要執(zhí)行mvn package,就會自動執(zhí)行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的鏡像名-->
<imageName>clover/${project.artifactId}</imageName>
<!--指定標簽-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!--指定Dockerfile 的位置,${project.basedir}:項目的根路徑下-->
<dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
<!--指定遠程docker api地址-->
<dockerHost>http://192.168.6.215:2375</dockerHost>
<resources>
<resource>
<!--容器中自定義jar包存放的位置,及對應的target目錄-->
<targetPath>/</targetPath>
<!--本地jar包所在路徑-->
<directory>${project.build.directory}</directory>
<!--需要包含本地jar包名稱,對應的是Dockerfile中添加的文件名-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<!--以下兩行是為了docker push到DockerHub使用的-->
<!--<serverId>docker-hub</serverId>
<registryUrl>https://index.docker.io/v1</registryUrl>-->
</configuration>
</plugin>
添加個url接口,方便訪問:
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@RestController
public class DockerdemoApplication {
public static void main(String[] args) {
SpringApplication.run(DockerdemoApplication.class, args);
}
@RequestMapping("/test")
public String test(){
return "1. Hello world ! " + new SimpleDateFormat(" [yyyy-mm-dd HH:mm:ss]").format(new Date());
}
}
在項目根目錄新建Dockerfile文件
# Docker image for springboot application # VERSION 0.0.1 # Author: bolingcavalry ### 基礎鏡像,使用alpine操作系統(tǒng),openjkd使用8u201 FROM openjdk:8u201-jdk-alpine3.9 #作者 MAINTAINER BolingCavalry <zq2599@gmail.com> #系統(tǒng)編碼 ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 #聲明一個掛載點,容器內此路徑會對應宿主機的某個文件夾 VOLUME /tmp #應用構建成功后的jar文件被復制到鏡像內,名字也改成了app.jar ADD target/dockerplugindemo-0.0.1-SNAPSHOT.jar app.jar #啟動容器時的進程 ENTRYPOINT ["java","-jar","/app.jar"] #暴露8080端口 EXPOSE 8080
在IDEA新建dockerfile啟動文件

Dockerfile配置詳情如下圖所示,請按照圖中的說明進行設置,確保每個紅框中都會執(zhí)行到:

上圖中最下面的那個"Run Maven Goal"點擊后,會彈出一個小窗口 ,用來輸入要執(zhí)行的maven命令,這里輸入clean package -U -DskipTests,表示每次在構建鏡像之前,都會將當前工程清理掉并且重新編譯構建:

設置完成后,點擊下圖紅框中的綠色三角按鈕,執(zhí)行此配置:


發(fā)布不成功可能會因為idea不是管理員權限打開的,筆者就遇到這種情況,發(fā)布失敗,連不上服務器docker。或者防火墻,宿主機的端口沒寫對等等
在服務器上執(zhí)行docker image可以查看鏡像情況
在瀏覽器上訪問地址:http://192.168.6.215:8080/test,得到響應如下圖所示,可見應用在容器中正常運行:

如果修改了代碼,再次點擊上圖的三角形啟動,就再次發(fā)布部署了
到此這篇關于IDEA2021.2配置docker如何將springboot項目打成鏡像一鍵發(fā)布部署的文章就介紹到這了,更多相關idea docker鏡像部署內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
java使用ffmpeg實現(xiàn)上傳視頻的轉碼提取視頻的截圖等功能(代碼操作)
這篇文章主要介紹了java使用ffmpeg實現(xiàn)上傳視頻的轉碼,提取視頻的截圖等功能,本文圖文并茂給大家介紹的非常詳細,對大家的工作或學習具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
kafka運維consumer-groups.sh消費者組管理
這篇文章主要為大家介紹了kafka運維consumer-groups.sh消費者組管理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
SpringBoot整合PageHelper分頁無效的常見原因分析
這篇文章主要介紹了SpringBoot整合PageHelper分頁無效的常見原因分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
SpringMVC集成Web與MVC執(zhí)行流程和數(shù)據(jù)響應及交互相關介紹全面總結
Spring MVC 是 Spring 提供的一個基于 MVC 設計模式的輕量級 Web 開發(fā)框架,本質上相當于 Servlet,Spring MVC 角色劃分清晰,分工明細,這篇文章主要介紹了SpringMVC集成Web與MVC執(zhí)行流程和數(shù)據(jù)響應及交互2022-10-10
SpringBoot使用@Async注解實現(xiàn)異步調用
這篇文章主要介紹了SpringBoot使用@Async注解實現(xiàn)異步調用,異步調用是相對于同步調用而言的,同步調用是指程序按預定順序一步步執(zhí)行,每一步必須等到上一步執(zhí)行完后才能執(zhí)行,異步調用則無需等待,程序執(zhí)行完即可執(zhí)行,可以減少程序執(zhí)行時間,需要的朋友可以參考下2023-10-10

