本文简介:将springBoot项目部署到虚拟机中的docker上,跳过Maven安装和部署,SpringBoot项目创建编写过程,以及docker安装过程。
如果你是在本机上安装的docker,或者在虚拟机上同时安装docker和Maven的推荐观看另一个博客发表的更简单的操作:(28条消息) docker部署springboot项目(详细教程)_流星007的博客-CSDN博客_docker部署springboot
目录
3.打包(如果直接点解package报错的话,可以尝试以下方式)
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包复制进去