docker运行springboot项目

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44655181/article/details/98320938

一 搭建一个小型的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测试地址
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44655181/article/details/98320938