首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot实战-docker部署项目

Spring Boot实战-docker部署项目

作者头像
我的小熊不见了丶
发布2019-05-22 21:44:23
6300
发布2019-05-22 21:44:23
举报
文章被收录于专栏:晓月寒·晓月寒·

由于Spring Boot默认集成了Tomcat,因此启动一个Spring Boot项目非常的简单,部署的时候也可以直接打成jar包使用java -jar命令部署。但是在生产环境下直接使用jar包部署会带来一些问题,比如只有一台服务器但是又想搞集群,再比如项目想要往自动化运维方向发展,这个时候就不得不把docker技术提上日程了。

  • 想要Spring Boot使用docker部署的话,首先需要在pom.xml中加入docker插件,在build节点下新增插件:
            <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.image.prefix}需要我们在pom.xml中的properties节点中定义,用于作为docker镜像的名字。

  • 之后需要配置docker打包的配置文件Dockerfile,在项目main文件夹下新建docker文件夹(也就是上面dockerDirectory路径),新建Dockerfile文件:
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD demo.jar app.jar
RUN sh -c 'touch /app.jar'
RUN echo "Asia/Shanghai" > /etc/timezone;
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /demo.jar" ]

其中的demo为打出的jar包的名字,也就是pom.xml中配置的finalName

  • 接下来在服务器安装docker: yum -y install docker-io
  • 启动docker: service docker start
  • 上传项目到服务器,或者直接在服务器上用git/svn下载代码
  • 使用docker打包项目: mvn clean package docker:build 打包完成之后,使用docker命令docker images查看所有镜像,可以看到我们刚刚打好的镜像。
  • 运行镜像: docker run -p xxxx:xxxx -t image-name 使用命令运行镜像,也就部署完成了。
  • 查看日志: docker logs -f image-name 其中的image-name为jar包的名字,也就是pom.xml中配置的finalName。 这样就把docker集成到Spring Boot中了,为我们的DevOps迈出了一大步~
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.02.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档