背景:
正常情況下,我們開發完網站,需要打包部署的時候,可以通過maven直接package打包,然后得到jar包之后,拷貝到服務器,再巴拉巴拉處理后面的部署
有了Docker之后,前面打包依舊,只不過在服務器步驟時,通過docker快速實現部署
現在,我們可以通過Idea的docker插件,快速在Idea上實現打包部署,而不需要再登錄服務器去處理。
注意:此文需要前置條件如下
1、開發工具Idea
2、使用Maven管理包
3、CentOS服務器上需要使用Docker來部署
正文:
1、在服務器上
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~
新人一枚,如有不對,請多多包含~