docker發布springboot項目(含多模塊化springboot項目)


部署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> 
公共模塊 ipems-robot-common :( ps: 貌似不需要加以下內容,加了會報錯,如果有啟動類的話,會和 spring-boot-maven-plugin沖突?親測未加 )
<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>

  

 


免責聲明!

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



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