1. 程式人生 > 程式設計 >Linux+Docker+SpringBoot+IDEA一鍵自動化部署的詳細步驟

Linux+Docker+SpringBoot+IDEA一鍵自動化部署的詳細步驟

Linux+Docker+SpringBoot+IDEA一鍵自動化部署的步驟

記錄從打包到伺服器配置上線全流程

安裝docker

詳細步驟請戳這裡

用yum源安裝用yum源安裝
檢視是否已安裝docker列表

yum list installed | grep docke

安裝docker

yum -y install docker

-y表示不詢問安裝,直到安裝成功,安裝完後再次檢視安裝列表

開放2375埠,開啟遠端訪問

vim /usr/lib/systemd/system/docker.service

這行:

ExecStart=/usr/bin/dockerd-current \

替換為:

ExecStart=/usr/bin/dockerd-current -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \

重新載入docker配置

systemctl daemon-reload // 1,重新載入配置檔案
systemctl restart docker // 2,重啟docker

檢視埠是否開啟

netstat -nptl

直接curl看是否生效

curl http://127.0.0.1:2375/version

雖然開放此埠打包程式很方便,但是會導致一些安全問題,因此 可以限制訪問IP來解決,在雲伺服器中設定安全組即可

IDEA連結docker

第一步,遠端連結docker:

在這裡插入圖片描述

成功後可見:

在這裡插入圖片描述

打映象包

大致流程如下,採用maven繫結的方式進行打包映象,然後根據該映象建立一個docker容器,啟動容器,即可
首先我們先建立一個DockerFile,路徑參考:

在這裡插入圖片描述

DockerFile檔案內容如下:

FROM java:8
VOLUME /tmp
#docker-day1-1.0.jar為專案打包為jar包的名字,app.jar為別名
ADD docker-day1-1.0.jar app.jar
#執行的時候對外提供的埠預設是8090,即便你在這裡聲明瞭3000也不會改變預設的埠8090
EXPOSE 8090
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

然後在pom檔案裡面配置docker-maven-plugin外掛,在plugins節點下,新增一個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>
   <!--將外掛繫結在package這個phase上。也就是說,使用者只需執行mvn package ,就會自動執行mvn docker:build-->
   <phase>package</phase>
   <goals>
    <goal>build</goal>
   </goals>
   </execution>
  </executions>
  <configuration>
   <!--指定生成的映象名-->
   <imageName>jason/${project.artifactId}</imageName>
   <!--指定標籤-->
   <imageTags>
   <imageTag>latest</imageTag>
   </imageTags>
   <!--指定 Dockerfile 路徑-->
   <dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
   <!--指定遠端 docker api地址-->
   <dockerHost>http://58.87.113.58: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>

配置完成,現在使用maven package,即可將我們的jar包打成docker映象,可以使用idea右側的快捷方式,
也可以使用命令:

mvn package

完成後,我們會在這裡看見我們剛打好的映象包

在這裡插入圖片描述

執行該映象,需要使用到docker的容器來承載它,我們右鍵建立

在這裡插入圖片描述

設定映象名稱,設定IP對映即可,我這裡專案的port是8090,容器對外開放設定為8091

在這裡插入圖片描述

設定完之後我們點選Run,訪問我們提前寫好的測試介面,測試結果

在這裡插入圖片描述

那麼問題來了,我們開發的時候改完程式碼就需要釋出一次,不可能每次都先點一下package然後再run是吧,這樣多撈啊,我們把這兩個步驟串起來,不就行了嗎
繼續編輯我們剛剛的配置,新增一個maven步驟即可

在這裡插入圖片描述

那麼我們再次修改程式碼後,再點選Run,即可在線上看到最新的程式了,至此一個簡單的一鍵部署就完成了

在這裡插入圖片描述

附:java原始碼下載

到此這篇關於Linux+Docker+SpringBoot+IDEA一鍵自動化部署的詳細步驟的文章就介紹到這了,更多相關Linux+Docker+SpringBoot+IDEA一鍵自動化部署內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!