溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

IDEA2021.2配置docker怎樣將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署

發(fā)布時(shí)間:2021-09-26 10:02:12 來(lái)源:億速云 閱讀:216 作者:柒染 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)IDEA2021.2配置docker怎樣將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

這里再介紹如何在IDEA中配置docker,將項(xiàng)目部署到服務(wù)器

idea2021激活教程

https://www.yuque.com/docs/share/b996d27e-c888-45f2-bb1e-f6db5efe2485?#

http://www.kemok4.com/article/178193.htm

去插件中心安裝Docker插件,安裝完重啟IDEA。這個(gè)簡(jiǎn)單

IDEA2021.2配置docker怎樣將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署 

配置連接遠(yuǎn)程docker,打開Docker插件,新建連接,在Engine API URL處輸入服務(wù)器IP地址:2375。出現(xiàn)Connection successful代表鏈接成功,否則需要看看ip端口是否是通的

IDEA2021.2配置docker怎樣將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署

新建一個(gè)springboot項(xiàng)目,在pom文件中docker-maven-plugin插件,直接復(fù)制

  <plugin>
              <groupId>com.spotify</groupId>
              <artifactId>docker-maven-plugin</artifactId>
              <version>1.2.1</version>
              <!--將插件綁定在某個(gè)phase執(zhí)行-->
              <executions>
                  <execution>
                      <id>build-image</id>
                      <!--將插件綁定在package這個(gè)phase上,也就是說(shuō),用戶只需要執(zhí)行mvn package,就會(huì)自動(dòng)執(zhí)行mvn docker:build-->
                      <phase>package</phase>
                      <goals>
                          <goal>build</goal>
                      </goals>
                  </execution>
              </executions>
              <configuration>
                  <!--指定生成的鏡像名-->
                  <imageName>clover/${project.artifactId}</imageName>
                  <!--指定標(biāo)簽-->
                  <imageTags>
                      <imageTag>latest</imageTag>
                  </imageTags>
                  <!--指定Dockerfile 的位置,${project.basedir}:項(xiàng)目的根路徑下-->
                  <dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
                  <!--指定遠(yuǎn)程docker api地址-->
                  <dockerHost>http://192.168.6.215:2375</dockerHost>
                  <resources>
                      <resource>
                          <!--容器中自定義jar包存放的位置,及對(duì)應(yīng)的target目錄-->
                          <targetPath>/</targetPath>
                          <!--本地jar包所在路徑-->
                          <directory>${project.build.directory}</directory>
                          <!--需要包含本地jar包名稱,對(duì)應(yīng)的是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>

添加個(gè)url接口,方便訪問(wèn):

@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());
  }
}

在項(xiàng)目根目錄新建Dockerfile文件

# Docker image for springboot application
# VERSION 0.0.1
# Author: bolingcavalry

### 基礎(chǔ)鏡像,使用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

#聲明一個(gè)掛載點(diǎn),容器內(nèi)此路徑會(huì)對(duì)應(yīng)宿主機(jī)的某個(gè)文件夾
VOLUME /tmp

#應(yīng)用構(gòu)建成功后的jar文件被復(fù)制到鏡像內(nèi),名字也改成了app.jar
ADD target/dockerplugindemo-0.0.1-SNAPSHOT.jar app.jar

#啟動(dòng)容器時(shí)的進(jìn)程
ENTRYPOINT ["java","-jar","/app.jar"]

#暴露8080端口
EXPOSE 8080

在IDEA新建dockerfile啟動(dòng)文件

IDEA2021.2配置docker怎樣將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署

Dockerfile配置詳情如下圖所示,請(qǐng)按照?qǐng)D中的說(shuō)明進(jìn)行設(shè)置,確保每個(gè)紅框中都會(huì)執(zhí)行到:

IDEA2021.2配置docker怎樣將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署

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

IDEA2021.2配置docker怎樣將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署

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

IDEA2021.2配置docker怎樣將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署
IDEA2021.2配置docker怎樣將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署

發(fā)布不成功可能會(huì)因?yàn)閕dea不是管理員權(quán)限打開的,筆者就遇到這種情況,發(fā)布失敗,連不上服務(wù)器docker?;蛘叻阑饓?,宿主機(jī)的端口沒(méi)寫對(duì)等等

在服務(wù)器上執(zhí)行docker image可以查看鏡像情況

在瀏覽器上訪問(wèn)地址:http://192.168.6.215:8080/test,得到響應(yīng)如下圖所示,可見應(yīng)用在容器中正常運(yùn)行:

IDEA2021.2配置docker怎樣將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署

如果修改了代碼,再次點(diǎn)擊上圖的三角形啟動(dòng),就再次發(fā)布部署了

上述就是小編為大家分享的IDEA2021.2配置docker怎樣將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI