SpringBoot集成Docker

Docker是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包到一个可移植的容器中。

一、依赖


<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>springboot-demo</artifactId>
        <groupId>com.et</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>docker</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>


    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- Docker Maven Plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.0</version> <!-- 使用最新版本 -->
                <configuration>
                    <imageName>springboot-demo/springboot-with-docker</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
            <!-- End of Docker Maven Plugin -->
        </plugins>
    </build>
</project>

二、配置文件和启动类

server:
  port: 8088
@SpringBootApplication
public class DemoApplication {

   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
}

三、Dockerfile

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD docker-1.0-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

四、Controller

@Controller
public class HelloWorldController {
    @RequestMapping("/hello")
    @ResponseBody
    public Map<String, Object> showHelloWorld(){
        Map<String, Object> map = new HashMap<>();
        map.put("msg", "HelloWorld");
        return map;
    }
}

五、构建镜像

mvn clean package docker:build

docker images 查看镜像
在这里插入图片描述
六、运行容器

docker run -p 8088:8088 springboot-demo/springboot-with-docker
在这里插入图片描述

访问地址http://127.0.0.1:8088/hello,返回

{“msg”:“HelloWorld”}

相关推荐

  1. SpringBoot 集成 Kafka消息中间件,Docker安装Kafka环境

    2024-03-12 06:24:02       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 06:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 06:24:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 06:24:02       82 阅读
  4. Python语言-面向对象

    2024-03-12 06:24:02       91 阅读

热门阅读

  1. Golang-如何优雅的关闭一个Channel?

    2024-03-12 06:24:02       39 阅读
  2. Windows版Redis启用密码

    2024-03-12 06:24:02       38 阅读
  3. 正则表达式笔记+demo

    2024-03-12 06:24:02       45 阅读
  4. Leetcode 第388场周赛 问题和解法

    2024-03-12 06:24:02       45 阅读
  5. 商品上传上货搬家使用1688商品采集api接口

    2024-03-12 06:24:02       40 阅读
  6. JsonUtility和LitJson的特点与区别

    2024-03-12 06:24:02       40 阅读
  7. optee默认安全配置

    2024-03-12 06:24:02       40 阅读
  8. 【Linux上使用jeprof和jemalloc分析内存泄漏的方法】

    2024-03-12 06:24:02       45 阅读
  9. Pytorch学习 day12(模型的保存和加载)

    2024-03-12 06:24:02       41 阅读
  10. 02_Git

    02_Git

    2024-03-12 06:24:02      38 阅读
  11. ruoyi-nbcio-plus的Vue3前端一些插件使用介绍(一)

    2024-03-12 06:24:02       48 阅读
  12. 代码随想录day36:动态规划part4,背包问题

    2024-03-12 06:24:02       49 阅读