部署springboot項目:
1:將打包jar的項目和
Dockerfile文件放在同一個目錄下
1.1 新建Dockerfile文件 window上新建也可以,后綴名txt,服務器上新建直接Dockerfile沒有后綴名之分
EXPOSE 對外暴露的端口號
FROM java:8 MAINTAINER liuhao EXPOSE 8080 ADD springboot-demo-0.0.1-SNAPSHOT.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
進入文件目錄下
2:制作鏡像
-t 參數是指定此鏡像的tag名
3:
后台形式:
docker run -d -p 8080:8080 yang
前台形式(可以看見啟動情況,報錯也能看見)
docker run -it -p 8080:8080 yang
注意:
啟動報錯的話,jar包有問題的話,需要刪除鏡像,從新添加jar包,制作鏡像
4:訪問:
直接瀏覽器訪問: http://你的服務器ip地址:8080/
報錯:springboot no main manifest attribute, in /app.jar
沒有主啟動類
部署多模塊化springboot項目
項目結構:

1:
項目基於maven pom多模塊的開發的,需要設置goal-repackage屬性為true,否則打包后文件依賴文件沒有一起打包,然后鏡像內沒有可以運行的程序文件
接口模塊
ipems-robot-publicService
:同時標注主啟動類是哪個
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.ipems.robot.publicService.PublicServiceApp</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
<build> <plugins> <!--打jar包--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--值為true是指打包時包含scope為system的第三方Jar包--> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> </build>