1.常规部署
输入mvn package即可打包成jar/war(可以在target中看到)
注意:如果要在独立的tomcat中运行的话这样还不够,还需要以下步骤:
1.1保证打包的是war包
1.2在pom.xml中添加下面依赖,排除springboot内置的tomcat
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope></dependency>
1.3在启动类中继承SpringBootServletIntializer,并重写configure方法
@SpringBootApplicationpublic class DemoApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(DemoApplication.class); } }
2. 云部署-基于Docker的部署
Dockerfile中主要有如下指令
2.1. FROM 指定了当前镜像继承的基镜像。编译当前镜像时会自动下载基镜像
2.2. MAINTAINER 指定了当前镜像的作者
2.3.RUN 可以在当前镜像上执行Linux命令并形成一个新的层。RUN是编译时(build)的动作
2.4.CMD指明了启动镜像容器时的行为,一个Dockerfile里只能有一个CMD指令。CMD指令里设定的命令可以在运行镜像时使用参数覆盖。CMD是运行时(run)动作
2.5.ENV 用来设置环境变量
2.6.ADD是从当前的工作目录复制文件到镜像的目录中去
2.7.ENTRYPOINT 可以让容器像一个可执行一样执行,这样镜像运行时可以像软件一样接受参数执行,它是运行时(run) 的动作
2.8.EXPOSE指明了镜像运行时的容器必需监听的指定的端口
启动java应用,首先是打成jar/war,然后将jar/war和Dockerfile文件放在同一目录下面
Dockerfile的内容如下:
FROM hub.c.163.com/library/tomcat:8.0
MAINTAINER jin
COPY demo-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps
3. 编译镜像
在上面的目录下执行
docker build -t wisely/appdocker .(注意最后有个.,代表当前目录下)
注意:wisely/appdocker是镜像的名称,设置wisely作为前缀,这也是Docker镜像的一种命名习惯
4. 查看镜像是否创建成功和运行镜像
docker images
运行镜像:
docker run -d --name app -p 8080:8080 wisely/appdocker
测试连接:
当前的docker虚拟机的ip 是192.168.99.100,所以浏览器访问192.16.31.171:8080+项目名+方法mapping 即可
这里我们简单创建一个controller类,并写了个hello world测试:
@RestControllerpublic class DemoController { @RequestMapping(value="/index") String home() { return "Hello World!"; } }
注意@RestController和@Controller的区别,这里有个坑!!!