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

47次阅读

共计 2403 个字符,预计需要花费 7 分钟才能阅读完成。

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

正文完
 0