首頁 > 軟體

maven實現docker自動化部署外掛的使用

2021-06-21 16:00:20

構建開發專案

首先開啟我們的IDEA構建一個我們的開發專案,設定如下:


接著開啟我們的pom.xml修改build的設定,修改以後的程式碼如下:

<build>
        <finalName>docker-automation-demo</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>com.github.lazyBoyl</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0-release</version>
                <configuration>
                    <!-- 需要上傳到伺服器的jar包所在的位置 -->
                    <jarTargetPath>${basedir}/target/docker-automation-demo.jar</jarTargetPath>
                    <!-- 建立映象的dockerFile的本地組態檔的路徑 -->
                    <dockerFilePath>${basedir}/dockerFile/Dockerfile</dockerFilePath>
                    <!-- 我們的dockerFile檔案和相應的jar包的檔案上傳到伺服器的路徑 -->
                    <dockerImagesPath>/home/app/docker/test/</dockerImagesPath>
                    <!-- 該工程啟動的時候的紀錄檔檔案的掛載,前面的為原生的伺服器的路徑,分號後面的為docker容器中的檔案路徑 -->
                    <containerRunShare>/home/app/logs/docker-plugin-test/log/:/app/www/logs/docker-plugin-test/log/</containerRunShare>
                    <!-- 該工程啟動的時候的埠對映,多個埠那就對應著啟動多少個容器 -->
                    <containerRunPorts>
                        <containerRunPort>8088:8088</containerRunPort>
                    </containerRunPorts>
                    <options>
                        <!-- 伺服器的ip:埠,賬號,密碼 -->
                        <option>
                            10.10.10.114:22,root,123456
                        </option>
                    </options>
                </configuration>
                <executions>
                    <execution>
                        <!-- 設定該外掛的執行的生命週期為package完成以後執行,若不想繫結就將executions這塊的程式碼註釋了,後面就不會在打包好以後再去執行docker外掛的操作 -->
                        <phase>package</phase>
                        <goals>
                            <!--phase與goal是繫結的關係,當g到達了phase階段的時候就會去執行goal,此處的值固定為dockerMavenPlugin,因為外掛給予他的名字就是dockerMavenPlugin -->
                            <goal>dockerMavenPlugin</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

接著我們在我們的主入口類的同級目錄底下建立一個controller包,同時在該目錄底下建立一個測試的TestController.java的測試入口類,程式碼如下:

package com.docker.automation.demo.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author linzf
 * @since 2019/5/28
 * 類描述:
 */
@RestController
@RequestMapping("/test")
public class TestController {

    private Logger logger = LoggerFactory.getLogger(TestController.class);

    /**
     * 功能描述:實現訊息的傳送
     *
     * @param msg 前端傳送的訊息
     * @return 返回結果
     */
    @GetMapping("sendMsg")
    public String sendMsg(@RequestParam("msg") String msg) {
        logger.debug("收到請求過來的訊息:{}", msg);
        return msg;
    }

}

最後記得在application.yml裡面設定上我們的埠未8088

設定dockerFile的組態檔

接著在工程的src的同級目錄建立一個dockerFile資料夾,同時在該資料夾底下建立一個Dockerfile檔案


接著開啟DockerFile組態檔設定資訊如下:

FROM base-jdk
   MAINTAINER linzf <282245889@qq.com>
   RUN mkdir -p /app/www/logs/docker-automation-demo/log/
   RUN mkdir -p /home/app/
   ADD docker-automation-demo.jar /home/app/app.jar
   CMD java -jar -Xms128m -Xmx1536m /home/app/app.jar

到此處我們就完成了我們的工程的docker的設定,如何建立基礎映象、如何部署docker這些大家可以直接看我的docker系列文章:https://blog.csdn.net/linzhefeng89/article/details/78413387

最後我們直接點選我們IDEA的package命令進行打包,那麼我們的maven外掛會自動幫我們將我們的包打包部署到我們的docker容器中。


接著我們直接存取我們的微服務的地址:http://10.10.10.114:8088/test/sendMsg?msg=wytuy

到此為止我們就完成了我們的自動化部署外掛的講解,具體程式碼請檢視github的地址:
https://github.com/lazyboyl/docker-automation-demo

到此這篇關於maven實現docker自動化部署外掛的使用的文章就介紹到這了,更多相關maven docker自動化部署內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com