部署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>