前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【快学SpringBoot】SpringBoot+Docker构建、运行、部署应用

【快学SpringBoot】SpringBoot+Docker构建、运行、部署应用

作者头像
Happyjava
发布2019-07-16 13:08:35
6010
发布2019-07-16 13:08:35
举报
文章被收录于专栏:Happy的分享

前言

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

源码在文末

文末有项目源码的github地址

构建一个SpringBoot项目

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

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

代码语言:javascript
复制
<!-- 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值为:

代码语言:javascript
复制
<docker.image.prefix>happy</docker.image.prefix>
复制代码

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

Dockerfile

Dockerfile文件内容如下:

代码语言:javascript
复制
FROM openjdk
VOLUME /tmp
ADD springboot-docker-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
复制代码

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

添加测试接口

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

代码语言:javascript
复制
@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比较长的时间)

代码语言:javascript
复制
mvn package docker:build
复制代码

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

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

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

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

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

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

使用该镜像创建容器

命令如下:

代码语言:javascript
复制
docker run -it -d --name springboot -p 8080:8080 happy/springboot-docker
复制代码

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

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

代码语言:javascript
复制
docker logs springboot
复制代码

访问测试接口

源码下载

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

github.com/Happy4Java/…

关注公众号领资料

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

原创声明

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年07月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 源码在文末
  • 构建一个SpringBoot项目
    • Dockerfile
    • 添加测试接口
    • maven打包
    • 使用该镜像创建容器
    • 访问测试接口
    • 源码下载
    • 关注公众号领资料
    • 原创声明
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档