亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker 中如何部署 Spring Boot 項目

發布時間:2021-07-30 18:14:34 來源:億速云 閱讀:176 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關Docker 中如何部署 Spring Boot 項目,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。


一、Maven 插件配置

首先在 Maven pom.xml 配置文件中加入 Docker 的 Maven 插件。

我看網上很多人還在用 docker-maven-plugin 插件:

<properties>
    <docker.image.prefix>docker</docker.image.prefix>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.2.2</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>
    </plugins>
</build>
 

你們還在用這個插件嗎?

棧長從官方倉庫看到,這個插件官方已經不維護了:

Docker 中如何部署 Spring Boot 項目  

所以這個插件我就不推薦大家使用了,而是推薦官方的另外一個插件:dockerfile-maven

<build>
    <plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>dockerfile-maven-plugin</artifactId>
            <version>1.4.13</version>
            <executions>
                <execution>
                    <id>default</id>
                    <goals>
                        <goal>build</goal>
                        <goal>push</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <repository>javastack/${project.name}</repository>
                <tag>${project.version}</tag>
                <buildArgs>
                    <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
                </buildArgs>
                <dockerfile>src/main/docker/Dockerfile</dockerfile>
            </configuration>
        </plugin>
    </plugins>
</build>
 

這個插件使用簡單,功能更強大。

新插件地址:

https://github.com/spotify/dockerfile-maven

最新版插件的環境要求:

  • JDK 7+

  • Apache Maven 3.5.2+

這個插件的牛逼之處在于:

1、從插件名稱就可以知道,這個插件是基于 Dockerfile 文件進行構建 Docker 項目的,專注 Dockerfile 文件,所以需要一個 Dockerfile 文件,Dockerfile 也是構建 Docker 項目的基石。

2、把 Docker 的構建過程集成到了 Maven 的構建過程之中,如果使用默認的配置,使用 mvn package 命令就能打包成一個 Docker 鏡像,使用 mvn deploy 命令就能推送到 Docker 倉庫。

3、使我們的構建目標更明確,如我們先使用 mvn dockerfile:build 然后再 mvn dockerfile:tag,然后再 mvn dockerfile:push,也可以滿足同時構建再推送的場景,如:mvn dockerfile:build dockerfile:push,這都沒問題的。

4、與 Maven 構建集成,我們可以在一個項目中依賴另外一個項目的 Docker 鏡像,Maven 將以正確的順序構建項目。當我們運行涉及多個服務的集成測試用例時,這很有用的。

 

二、Docker 配置

Dockerfile 是創建 Docker 鏡像的基本配置文件,本身是一個文本文件。

插件默認加載位置為項目所在根目錄,因為我在上面的 Maven 插件配置中指明了路徑。所以,在 src/main/docker/ 目錄下添加一個 Dockerfile 文件:

# 添加 Java 8 鏡像來源
FROM java:8

# 添加參數
ARG JAR_FILE

# 添加 Spring Boot 包
ADD target/${JAR_FILE} app.jar

# 執行啟動命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
 

值得說一下的是,上面的 JAR_FILE 參數就是從 Docker Maven 插件中指定的構建參數,這也是這個插件的強大之處,可以翻到文章上面去看一下。

具體的 Dockerfile 文件細節比較多,這里就不展開詳細介紹了,后面我再開一篇單獨介紹,關注公眾號Java技術棧第一時間推送。

 

三、添加測試接口

添加一個測試接口,以便后面部署測試。

package cn.javastack.springboot.docker;

import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 微信公眾號:Java技術棧
 */
@RestController
@SpringBootApplication
public class DockerApplication {

    public static void main(String[] args) {
        SpringApplication.run(DockerApplication.class);
    }

    @GetMapping("/docker/hello")
    public String helloDocker() {
        return "hello docker";
    }

}
 

Spring Boot 基礎性的知識和搭建過程就不介紹了,不熟悉的可以關注公眾號Java技術棧,在后臺回復關鍵字 "boot" 閱讀我之前寫的系列教程。

所有 Spring Boot 教程實戰源碼在下面個倉庫:

https://github.com/javastacks/spring-boot-best-practice

本篇所有實戰源碼到時也會全部同步到上面,大家 Star 一下吧!

 

四、構建 Docker 鏡像

配置了 Maven 插件和 Dockerfile 文件后就可以開始構建 Docker 鏡像了。

上面也說了,Docker 構建過程已經集成到了 Maven 的構建過程之中,那么可以直接使用 mvn package 就可以同時打包和構建 Docker 鏡像了。

在 IDEA 中可以直接點擊插件對應的命令運行:

Docker 中如何部署 Spring Boot 項目  
Docker 中如何部署 Spring Boot 項目  

插件會根據 Dockerfile 文件構建,文件中有多少條命令,就分為幾個步驟構建,如果沒問題就會構建成功。

 

五、IDEA 怎么操作 Docker?

一旦我們創建了 Dockerfile 文件,IDEA 就會自動識別并提示我們創建 Docker 連接,當然,我們也可以調出 Services 面板進行手動創建。

打開 IDEA 中的 Services 面板:

Docker 中如何部署 Spring Boot 項目  

然后點擊 Add service > Docker Connection 來添加一個 Docker 連接:

Docker 中如何部署 Spring Boot 項目  

創建完后會自動連接上,點擊展開會顯示 Docker 本地所有鏡像和容器:

Docker 中如何部署 Spring Boot 項目  

如上圖所示,就是我們剛構建的鏡像。

 

六、創建并運行容器

右擊上面的鏡像,選擇 "Create Container" 菜單來創建并運行一個容器。

Docker 中如何部署 Spring Boot 項目  

填寫相應的運行參數,再點擊運行按鈕,容器即開始運行。

然后在 Build Log 和 Log 面板中可以看到容器運行日志和應用程序運行日志:

Docker 中如何部署 Spring Boot 項目  
Docker 中如何部署 Spring Boot 項目  

項目在 Docker 中運行起來了,然后再訪問下上面寫的測試接口:

http://localhost:8080/docker/hello

Docker 中如何部署 Spring Boot 項目  


關于Docker 中如何部署 Spring Boot 項目就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梁山县| 汝南县| 北辰区| 五河县| 饶阳县| 高台县| 巴青县| 庆元县| 辉南县| 宁陕县| 常熟市| 离岛区| 洪江市| 灵武市| 遂平县| 西昌市| 安平县| 繁昌县| 佛冈县| 武功县| 肃北| 沁阳市| 罗城| 米林县| 库尔勒市| 察哈| 和田县| 华池县| 射洪县| 神农架林区| 湟源县| 永德县| 招远市| 峨山| 石阡县| 桃源县| 南安市| 阜新| 旌德县| 五原县| 鹤庆县|