docker部署springboot项目要点总结

        本文简介:将springBoot项目部署到虚拟机中的docker上,跳过Maven安装和部署,SpringBoot项目创建编写过程,以及docker安装过程。

如果你是在本机上安装的docker,或者在虚拟机上同时安装docker和Maven的推荐观看另一个博客发表的更简单的操作:(28条消息) docker部署springboot项目(详细教程)_流星007的博客-CSDN博客_docker部署springboot

目录

SpringBoot项目注意要点

      1. POM文件添加打包插件

        2.POM文件指定资源文件所在目录

        3.打包(如果直接点解package报错的话,可以尝试以下方式)

         4.上传项目到虚拟机上

        5.编写dockerfile

docker注意要点

       1.安装docker

        2.拉取Java环镜

        3.运行dockerfile,构建镜像

        4.检验是否成功构建镜像

        5.运行镜像

报错解决方案


       

SpringBoot项目注意要点

        前提条件:Maven项目

      1. POM文件添加打包插件

 <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.4.2.RELEASE</version>
                <configuration>
                    <fork>true</fork>
                    <mainClass>com.example.demo.DemoApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>
                                repackage
                            </goal>
                        </goals>
                    </execution>
                </executions>
</plugin>

        2.POM文件指定资源文件所在目录

一般我们的资源文件(xml,porperties,yml)会放在src/main/resources 目录下,但有时我们的资源文件还会放在其他地方,比如我的项目通常会将资源文件放在 src/mian/java(比如mybatis的映射文件)或者webapp下。但是后两种情况下在使用 maven 打包时是不会被打包进 jar 的。这时候我们便要指定需要打包的资源文件。

<resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/webapp</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <targetPath>WEB-INF/resources</targetPath>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <filtering>false</filtering>
            </resource>
</resources>

        3.打包(如果直接点解package报错的话,可以尝试以下方式)

        

         4.上传项目到虚拟机上

        将整个target打包成(target.zip),然后下载到虚拟机内(建议使用FinalShell,直接拉到指定目录就可以了),解压到指定目录下(此处举例解压到tmp目录下:unzip -d /tmp/ target.zip)

        5.编写dockerfile

        在解压后的target内创建明为dockerfile的文件(touch dockerfile),然后编写dockerfile(vim dockerfile)

FROM openjdk
MAINTAINER zy
ADD demo-0.0.1-SNAPSHOT.war app.war
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.war"]

FROM:指定存在的镜像,java:8是我刚刚拉取的镜像,运行的基础。
ADD:复制文件并且重命名文件。

EXPOSE :声明了那些端口是将要开放的
ENTRYPOINT:初始化配置或者自定义配置。 

docker注意要点

       1.安装docker

        参考网址:Ubuntu Docker 安装 | 菜鸟教程 (runoob.com)

        2.拉取 Java 环镜
   

docker pull openjdk:latest

        拉取完之后检查是否成功 

docker images

        显示  

         

        3.运行dockerfile,构建镜像

docker build -f dockerfile -t springboottest:v1 .

--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签

-f :指定要使用的Dockerfile路径(可省略,默认识别名字为Dockerfile,如果为其他的或者不在当前目录下要特备指定)

. :打包对象为当前目录下的所有文件

        4.检验是否成功构建镜像

docker images

        显示

        5.运行镜像

docker run -it --name dockertest -p 8080:8080  pringboottest:v1

-it 以交互式虚拟终端启动该镜像

--name 给该容器起别名

-p 设置端口映射,本地端口号:docker内部端口号

 

报错解决方案

        目标:使用前端技术jsp的项目运行时jstl报http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar

        解决方案:

        1.使用maven导入JSTL实现包

<dependency>
            <groupId>org.apache.taglibs</groupId>
            <artifactId>taglibs-standard-impl</artifactId>
            <version>1.2.3</version>
</dependency>

        2.在本机的maven仓库下找到这个jar包,并解压

         3.在WEB-INF文件下创建tld文件夹,并从上述解压后的文件里下列jar包复制进去

 

 

  • 33
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值