1.IDEA下載docker插件
此處不再贅述,和其他插件一樣安裝
2.云服務器docker
說明:本人服務器使用的是centOS 7
2.1 docker的安裝
http://www.ythuaji.com.cn/article/181614.html
2.2 停止docker服務
為了防止restart docker服務出現錯誤,保險起見,最好先停止docker服務,再修改配置文件。
停止docker之前要先停止正在運行的容器,否則后面啟動容器也有可能出錯。
停止運行容器:
docker stop [container_id]
然后停止docker服務
systemctl stop docker
2.3 docker配置文件修改
為了使用HTTP方式讓IDEA連上服務器上的docker,需修改docker的配置文件,修改內容如下:
vim /usr/lib/systemd/system/docker.service
修改Execstart 這行內容,將其替換為以下內容,目的是開放2375端口,能進行HTTP遠程連接:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
2.4 刷新配置文件
命令如下:
systemctl daemon-reload
測試配置文件是否生效,在服務器端輸入如下命令,如果出現JSON字符串內容,則文件生效
curl http://127.0.0.1:2375/version
2.5 啟動docker服務
命令如下:
systemctl restart docker
2.6 防火墻增加2375端口
命令如下:
firewall-cmd --zone=public --add-port=2375/tcp --permanent
重啟防火墻:
firewall-cmd --reload
2.7 阿里云增加安全組規則
這里要注意在實例的頁面進入安全組,然后配置規則,開放2375端口
2.8 測試遠程HTTP連接
在本地瀏覽器輸入 http://127.0.0.1:2375/version
,同理, 如果出現JSON字符串,則能進行HTTP連接。
到此, 可以用IDEA進行集成dokcer了。
3. maven項目打包
3.1 打包插件
在pom文件中添加springboot打包插件
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin>
3.2 資源文件的打包及打包后的位置
除了打包java源文件,還需要將資源文件打包,如xml/yml/properties/html等文件。但要注意html文件打包的位置,要放在META-INF/resources目錄,否則啟動jar包后,訪問不到html頁面。
<resources> <resource> <directory>src/main/java</directory> <!--這里我將mapper文件放在了java目錄下 所以需要聲明編譯位置--> <includes> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <!--聲明yml配置文件編譯位置--> <directory>src/main/resources</directory> </resource> <resource> <!--聲明html文件編譯位置 并將編譯后的文件放入指定位置--> <directory>src/main/webapp</directory> <targetPath>META-INF/resources</targetPath> </resource> </resources>
3.3 docker插件
需要注意兩個地方,一是docker鏡像名字前面需要有一個前綴,其組成是[前綴]:[鏡像名]:[版本號],二是指定鏡像名時不得包含大寫字母。
項目信息中name和version都要用到
<groupId>org.team</groupId> <artifactId>coolmeeting</artifactId> <version>1.0-SNAPSHOT</version> <name>coolmeeting</name> <description>docker start meetingMS</description> <properties> <java.version>1.8</java.version> <docker.image.prefix>team</docker.image.prefix> </properties> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- tag::plugin[] --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <dockerHost>http://127.0.0.1:2375</dockerHost> <!--鏡像名字 不能含有大寫字母--> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <!--dockerfile所在位置--> <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <!--target所在位置--> <directory>${project.build.directory}</directory> <!--將jar包和Dockerfile放在統一目錄--> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> <!-- end::plugin[] --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins>
Dockerfile文件如下,注意創建該文件時D要大寫 , /meetingMS.jar是別名,方便書寫
FROM java:8 VOLUME /tmp ADD coolmeeting-1.0-SNAPSHOT.jar /meetingMS.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/meetingMS.jar"]
3.4 clean、install和docker build
先用maven進行clean和install,然后用maven插件docker進行build
打包后的文件目錄:
啟動容器
設置啟動參數
4.遇到的坑
- 鏡像名稱問題(不能含大寫字母)
- springboot配置文件application.yml無法打包
- 打包后html頁面訪問不到
5.參考
springboot打成jar包無法訪問jsp或者html,404錯誤
到此這篇關于IDEA集成docker部署springboot項目的文章就介紹到這了,更多相關IDEA集成docker部署springboot項目內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/flipped___/article/details/107113143