怎么把spring boot打包成镜像部署到docker
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么把spring boot打包成镜像部署到docker相关的知识,希望对你有一定的参考价值。
你好,当想让一个容器做两件事情,或者使一个Docker镜像包含来自两个不同镜像的依赖库时,就需要知道每个镜像的Dockerfile。本文介绍了如何通过docker history命令来对Docker镜像进行反向工程,得到它们的Dockerfile,并组织到一个Dockerfile里 参考技术A 用ustraiso就是软碟通,打包成ISO的文件,再用NERO等一些访刻录就行了,能用的
Spring Boot框架开发Web项目 Spring Boot项目的打包和部署
现在我们已经有了一个简单的项目了,我们应该怎么将项目打包,并部署到服务器上呢?
工具
IntelliJ IDEA 16
JDK 1.8
Maven 3.5
Tomcat 1.8
将项目打成war包并部署到Tomcat中
1、首先打开我们的pom.xml文件,修改其中的配置
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>SNAPSHOT</version>
<packaging>war</packaging>
将<packaging>标签中的值修改为“war”,这样我们导出时,就会得到一个 xxx.war的文件了
2、然后我们再在pom.xml文件中添加Tomcat的依赖
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
...
</dependencies>
其中需要添加<scope>provided</scope>
3、修改启动类
通常我们的启动类如下
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
现在我们需要让启动类继承SpringBootServletInitializer类,并重写configur方法,代码如下
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
如果要发布到自己的Tomcat中的时候,需要继承SpringBootServletInitializer类,并且重写configure方法。
如果不发布到自己的Tomcat中的时候,就无需上述的步骤
4、选择IDEA菜单 Run - - Rebuild Project
5、然后再选择菜单 Run - - Build Atifacts...
6、在弹出的菜单中选择 All Atrifacts - - Build
7、执行之后我们可以在项目的target目录下看到如图所示的文件(demo-SNAPSHOT.war)
8、将此文件拷贝到我们的Tomcat的webapps目录下,删除文件名后的版本信息,只保留项目名称(修改demo-SNAPSHOT.war 为demo.war)
9、运行Tomcat 的bin目录下的startup.bat,我们可以看到webapps目录下的war包被自动解压成一个文件
10、访问项目:http://localhost:8080/demo/profile
以上是关于怎么把spring boot打包成镜像部署到docker的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 的项目打包成的 JAR 包,制作成 docker 镜像并运行