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:然后使用这个镜像
二:应用 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
<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