使用docker-maven-plugin打包


今天在部署的時候遇到點問題,總結一下,docker部署的步驟,如果對您有幫助,關注一下,就是對我最大的肯定, 謝謝!

微服務部署有兩種方法:
(1)手動部署:首先基於源碼打包生成jar包(或war包),將jar包(或war包)上傳至虛
擬機並拷貝至JDK容器。
(2)通過Maven插件自動部署。
對於數量眾多的微服務,手動部署無疑是非常麻煩的做法,並且容易出錯。所以我們這里學習如何自動部署,這也是企業實際開發中經常使用的方法。
docker-maven-plugin的Github坐標:docker-maven-plugin
Maven插件自動部署步驟:

(1)修改宿主機的docker配置,讓其可以遠程訪問
默認,我們的linux的 docker ,IDEA 是不可以訪問的,所以需要修改下配置,讓我們的IDEA 可以訪問

vi /lib/systemd/system/docker.service

在 其中的ExecStart=后添加配置

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

修改后如下內容:
在這里插入圖片描述
(2)刷新配置,重啟服務

systemctl daemon‐reload  # 刷新服務
systemctl restart docker # 重新啟動docker
docker start registry  # 啟動registry

(3) 在項目中增加插件配置


    <build>
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- docker的maven插件,官網: https://github.com/spotify/docker-maven-plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <imageName>192.168.100.128:5000/${project.artifactId}:${project.version}</imageName>
                    <baseImage>jdk1.8</baseImage>
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <dockerHost>http://192.168.100.128:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

以上配置會自動生成Dockerfile

用法

通過運行此命令來使用上述配置構建映像。

mvn clean package docker:build

打包和上傳鏡像

mvn clean package docker:build -DpushImage

要僅將特定標記推送到注冊表,指定請pushImageTag標記。

mvn clean package docker:build -DpushImageTag

執行打包和上傳鏡像后,會有如下輸出,代碼正在上傳
在這里插入圖片描述

瀏覽器訪問 http://192.168.184.135:5000/v2/_catalog輸出

{"repositories":["打包的項目名稱"]}

進入宿主機 , 查看鏡像,就會顯示,上傳的鏡像了

docker images


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM