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