Java –jar 启动
注意:就算我们在构建的是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了
1:直接把制作好的jar/war包上传到有docker的服务器上
2:然后在上面写Dockerfile,进行镜像制作
3:然后使用这个镜像
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