zoukankan      html  css  js  c++  java
  • 【快学SpringBoot】SpringBoot+Docker构建、运行、部署应用

    前言

    Docker技术发展为当前流行的微服务提供了更加便利的环境,使用SpringBoot+Docker部署和发布应用,其实也是一件比较简单的事情。当前,前提是得有Docker的基础。

    源码在文末

    文末有项目源码的github地址

    构建一个SpringBoot项目

    本人最早的一篇文章,就是教大家如何使用Spring Initialise工具,快速的创建一个SpringBoot项目,如果还不懂的,可以翻一下本人的第一篇文章,这里就不多讲了。下面贴一下主要的文件内容:

    pom文件的大部分内容这里就不贴了,主要贴关键的内容,主要的就是maven-docker的打包插件:

    <!-- Docker maven plugin -->
    <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>1.0.0</version>
        <configuration>
            <imageName>${docker.image.prefix}/${project.artifactId}</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>
    <!-- Docker maven plugin -->
    

    这里的docker.image.prefix值为:

    <docker.image.prefix>happy</docker.image.prefix>
    

    dockerDirectory配置了Dockerfile的路径为:src/main/docker,所以,我们需要在src/main目录下,创建docker目录,然后创建Dockerfile文件。整体的目录结构如下:

    Dockerfile

    Dockerfile文件内容如下:

    FROM openjdk
    VOLUME /tmp
    ADD springboot-docker-0.0.1-SNAPSHOT.jar app.jar
    ENTRYPOINT ["java","-jar","/app.jar"]
    

    到这里,已经完成了SpringBoot+Docker的配置了,接下来就是打包部署了。

    添加测试接口

    为了方便测试,可以添加一个GET请求的接口,如下:

    @SpringBootApplication
    @RestController
    public class SpringbootDockerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringbootDockerApplication.class, args);
        }
    
        @GetMapping(value = "/test")
        public Object test() {
            return "Hello SpringBoot with Docker!";
        }
    
    }
    
    

    maven打包

    使用maven构建Dockerfile的命令如下:(先把maven和Docker都设置为国内的源,否则需要build比较长的时间)

    mvn package docker:build
    

    在springboot-docker目录根路径下执行此命令即可。

    需要本地安装了Docker才能够打包成功,否则会报错。关于Docker的安装,Linux的用户可以根据我之前的文章进行安装,其他系统的用户可以自行搜索安装即可。推荐使用Linux。

    比如本人,Docker是安装在Linux虚拟机上的,直接把springboot-docker目录拷贝到Linux机器上:

    执行打包命令,输入如下:

    看到BUILD SUCCESS即表示构建成功了,这时候就可以通过docker images命令,查看我们构建的镜像了:

    镜像构建完之后,我们还可以把它推到Docker的仓库上。这里就不展开来讲了。

    使用该镜像创建容器

    命令如下:

    docker run -it -d --name springboot -p 8080:8080 happy/springboot-docker
    

    这里创建并且启动一个容器,命名为springboot,映射端口为8080:8080

    可以通过如下命令查看启动日志:

    docker logs springboot
    

    访问测试接口

    源码下载

    源码我放在github上,欢迎大家关注:

    https://github.com/Happy4Java/hello-springboot

    关注公众号领资料

    搜索公众号【Happyjava】,回复【电子书】和【视频】,即可获取大量优质电子书和大数据、kafka、nginx、MySQL等视频资料

    关注Happyjava公众号

    原创声明

    本文发布于掘金号【Happyjava】。Happy的掘金地址:https://juejin.im/user/5cc2895df265da03a630ddca,Happy的个人博客:(http://blog.happyjava.cn)[http://blog.happyjava.cn]。欢迎转载,但须保留此段声明。

  • 相关阅读:
    JavaEE XML XSL转换(XSLT)
    Java 并发 中断线程
    Java 并发 线程同步
    Java 并发 关键字volatile
    Java 并发 线程的优先级
    Java 并发 线程属性
    Java 并发 线程的生命周期
    Java NIO Channel和Buffer
    Java NIO Channel之FileChannel [ 转载 ]
    VUE CLI3 less 全局变量引用
  • 原文地址:https://www.cnblogs.com/happy4java/p/11206851.html
Copyright © 2011-2022 走看看