SpringBoot+IDEA+Maven+Docker實現快速打包部署網站


背景:

正常情況下,我們開發完網站,需要打包部署的時候,可以通過maven直接package打包,然后得到jar包之后,拷貝到服務器,再巴拉巴拉處理后面的部署

 

有了Docker之后,前面打包依舊,只不過在服務器步驟時,通過docker快速實現部署

 

現在,我們可以通過Idea的docker插件,快速在Idea上實現打包部署,而不需要再登錄服務器去處理。

 

注意:此文需要前置條件如下

1、開發工具Idea

2、使用Maven管理包

3、CentOS服務器上需要使用Docker來部署

 

正文:

1、在服務器上找到路徑:/lib/systemd/system/docker.service

 

 

找到打開,並修改此文件

 

#注釋掉"ExecStart"這一行,並添加下面這一行信息(相當於修改了ExecStart的內容)

 

 

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375  

 

 

 

2、修改完,執行以下命令重啟服務

#重新加載配置文件
systemctl daemon-reload
#重啟服務
systemctl restart docker.service
#查看配置的端口號(2375)是否開啟(非必要)
netstat -nlpt  #如果找不到netstat命令,可以先安裝一下這個工具,具體百度

注意:執行完,應該能看到多了一個2375的行

 

 

 

到這邊,服務器上要做的就結束了,回到IDEA這邊

 

3、安裝Docker插件

 

 

 

install之后,按下圖添加一下服務器信息

 

 

 

在idea這邊,service下Docker右擊,選擇連接

 

 

 

 這樣就已經和服務器上的docker建立連接了,docker下就能看到一些鏡像和容器了

 

4、在pom.xml添加build相關依賴包

為了方便查看,我把完整的build拷貝過來了,大家拷貝進去后,注意修改兩點:

-1- :<imageName>xxxxx/${project.artifactId}</imageName>,xxx需要修改為你自己的

-2-:<dockerHost>http://139.196.141.79:2375</dockerHost>,IP需要改成自己的

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!--使用docker-maven-plugin插件-->
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.0.0</version>
            <!--將插件綁定在某個phase執行-->
            <executions>
                <execution>
                    <id>build-image</id>
                    <!--用戶只需執行mvn package ,就會自動執行mvn docker:build-->
                    <phase>package</phase>
                    <goals>
                        <goal>build</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!--指定生成的鏡像名,這里是我們的作者名+項目名-->
                <imageName>xxxxx/${project.artifactId}</imageName>
                <!--指定標簽 這里指定的是鏡像的版本,我們默認版本是latest-->
                <imageTags>
                    <imageTag>latest</imageTag>
                </imageTags>
                <!--指定基礎鏡像jdk1.8-->
                <baseImage>java</baseImage>
                <!--
                鏡像制作人本人信息
                <maintainer>bruceliu@email.com</maintainer>
                -->
                <!--切換到ROOT目錄-->
                <workdir>/ROOT</workdir>
                <!--查看我們的java版本-->
                <cmd>["java", "-version"]</cmd>
                <!--${project.build.finalName}.jar是打包后生成的jar包的名字-->
                <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                <!--指定遠程 docker api地址  就是上面的服務器ip-->
                <dockerHost>http://139.196.141.79:2375</dockerHost>
                <!-- 這里是復制 jar 包到 docker 容器指定目錄配置 -->
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <!--jar 包所在的路徑  此處配置的 即對應 target 目錄-->
                        <directory>${project.build.directory}</directory>
                        <!--用於指定需要復制的文件 需要包含的 jar包 ,這里對應的是 Dockerfile中添加的文件名 -->
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

  

5、最后,通過maven去clean和package

 

 打包后,在鏡像右擊創建容器

 

 

這里,兩個紅框是必填的,其他隨意

 

 

點擊OK之后,就能在Containers里看到剛創建的容器了

 

6、現在打開瀏覽器,輸入你網站的地址,測試一下吧~

 

 

enjoy it~

 

新人一枚,如有不對,請多多包含~

 


免責聲明!

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



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