Springboot快速上手- 第五篇 部署应用

淺唱寂寞╮ 提交于 2020-08-08 09:59:56

1 部署可执行jar

Java –jar 启动

2 部署war

注意:就算我们在构建的是WAR文件,这个文件仍旧可以脱离应用服务器直接运行

部署到外部tomcat

1:pom里面修改jar为war,然后添加依赖

 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-tomcat</artifactId>
     <scope>provided</scope>
 </dependency>

2:让启动类App继承SpringBootServletInitializer并重写configure方法,例如:

public class App extends SpringBootServletInitializer{
   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
     return application.sources(App.class);
   }
}

3:然后就可以打包部署到外部tomcat了

3 部署到Docker

一:第一种方法

1:直接把制作好的jar/war包上传到有docker的服务器上

2:然后在上面写Dockerfile,进行镜像制作

3:然后使用这个镜像

image.png

二:应用docker-maven-plugin插件工具来直接编译,生成docker镜像

1:在开发机器上安装docker-toolbox,地址:https://www.docker.com/products/docker-toolbox,提示:不要去想一些其它捷径,比如什么开启Docker远程访问之类的方法(就是修改docker配置文件/usr/lib/systemd/system/docker.service,在ExecStart这行后面添加上: -H tcp://0.0.0.0:1234 -H unix:///var/run/docker.sock),这些基本上都是不可行的

2:安装好了之后,使用docker-machine的命令来操作,比如:

创建虚拟机(可以使用docker-machine来创建,也可以直接运行toolbox生成): docker-machine create –driver virtualbox default 启动虚拟机:docker-machine start default 停止虚拟机:docker-machine stop default

使用ssh登录到default,登上后,就可以使用docker命令了:

docker-machine ssh default 查看环境变量:docker-machine env 查看帮助:docker-machine help

3:在工程的src/main下面新建一个docker文件夹,然后在里面放置Dockerfile,示例如下:

FROM frolvlad/alpine-oraclejdk8:slim
COPY springbootstudy.jar springbootstudy.jar
EXPOSE 8080
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom”, “-jar”, “/springbootstudy.jar" ]

4:在pom里面添加plugin image.png

<plugin>
	<groupId>com.spotify</groupId>
	<artifactId>docker-<u>maven</u>-<u>plugin</u></artifactId>
	<version>0.4.13</version>
	<configuration>
		<imageName>${project.name}:${project.version}</imageName>
		<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
		<skipDockerBuild>false</skipDockerBuild>
		**<dockerHost>https://127.0.0.1:2376</dockerHost>**
		**<dockerCertPath>/Users/cc/.docker/machine/machines/default</dockerCertPath>**
		<resources>
			<resource>
				<directory>${project.build.directory}</directory>
				<include>${project.build.finalName}.jar</include>
			</resource>
		</resources>
	</configuration>
</plugin>

5:然后运行maven,如:mvn clean package docker:build –DskipTests

6:使用ssh登录到default,就可以docker images,看到你构建的镜像了

7:如果要直接push到私有仓库的话,在mvn命令后面加上 –DpushImage

8:如果运行的时候,报https的错误,这个不但需要修改私有仓库那边的docker配置(前面学过了),还需要修改toolbox里面的docker配置

(1)docker-machine ssh default (2)sudo vi /var/lib/boot2docker/profile

EXTRA_ARGS='
--label provider=virtualbox
**--insecure-registry  192.168.99.100:5000** 

(3)然后重新启动:sudo /etc/init.d/docker restart

cc老师2020年高级架构师系统培训课程7月6号正式开课,现在618活动,限时折扣中。至少300学时录播课程,60小时直播课,内容包含最新架构体系,现主流的架构,以及即时更新最新的技术,从理论到实践,以及如何解决问题。面试常用的 Netty,Redis,Kafka,Zookeeper,Dubbo, Nginx + openResty + kong + Lua, ElasticSearch等技术都深入源码层级,轻松掌握这些技术,从容应对面试。对于有想跟我一样有着像提高自身技术的同学,课程的详情都在私塾的首页详细说明了,感兴趣的小伙伴,可以一起去 【私塾在线 】 学习

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!