一 搭建一个小型的springboot项目打包
1. pom.xml如下:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>springboot</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>springboot-mybatis</artifactId>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
<properties>
<mybatis-spring-boot>1.2.0</mybatis-spring-boot>
<mysql-connector>5.1.39</mysql-connector>
</properties>
<dependencies>
<!-- Spring Boot Web 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot Test 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Spring Boot Mybatis 依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot}</version>
</dependency>
<!-- MySQL 连接驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector}</version>
</dependency>
<!-- Junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!--使用此插件,就可以打包成jar war,可以直接用java -jar命令直接运行-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- mybatis generator 自动生成代码插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
2. application.properties如下:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.typeAliasesPackage=com.test.boot.dto
mybatis.mapperLocations=classpath:mapper/*.xml
server.port=8080
spring.application.name=mybatis
logging.level.root=info
3. controller调用
@RestController
public class HelloWorldController {
@RequestMapping("hello")
public String hello(){
return "hello";
}
}
4. 打包
mvn clean install
因为pom中引入了spring-boot-maven-plugin插件, 可以直接用mvn clean install打包成jar包,且这个jar包可以用命令java -jar ***.jar启动
最终打包得到一个springboot-mybatis-0.0.1-SNAPSHOT.jar
二 配置docker镜像加速器
1. 使用原因
因为docker pull 命令默认使用dockerhub直接下载 ,这是 docker 官方的公共仓库,为我们免费提供了大量已经容器化的应用镜像,避免我们重复的去造轮子。
但是官方并没有在国内部署服务器,如果你不走 vpn 的话真的是太慢了,报错和超时让人非常的郁闷。我们可以使用阿里云进行镜像加速直接下载镜像。
2. 阿里云加速器配置步骤
三 下载java基础镜像
搜索java基础镜像alpine-oraclejdk8
docker search alpine-oraclejdk8 //执行命令后会查询出来很多镜像
选择一个评分较高的进行下载:
docker pull abrtech/alpine-oraclejdk8
下载后查看一下镜像:
docker images
四 制造springboot项目的镜像
1. 镜像准备
先创建目录 /usr/local/docker/springboot
目录下放置步骤一产生的springboot-mybatis-0.0.1-SNAPSHOT.jar
并创建一个Dockerfile文件
2. Dockerfile内容如下:
FROM abrtech/alpine-oraclejdk8
ADD springboot-mybatis-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
CMD java -jar app.jar
解释:
FROM 基础镜像
ADD 类似于linux命令中的copy
EXPOSE 暴露给外部的端口号
CMD 容器启动时执行的命令
3. 构建springboot镜像
命令如下:
docker build -t springboot-docker1 .
说明:
1)springboot-docker 是镜像的名称
2) . 表示在当前目录执行命令
镜像创建好后, 使用docker images查看新产生的镜像,如下图:
4. 启动新镜像
docker run -it -p 8080:8080 --name springboot-docker1 springboot-docker1
启动如下图:
如果带上 -d 表示后台启动, 就不会直接在控制台打印启动日志:
docker run -itd -p 8080:8080 --name springboot-docker1 springboot-docker1
5. 访问 hello测试地址