美文网首页
第一次用Dockerfile打包SpringBoot的Java

第一次用Dockerfile打包SpringBoot的Java

作者: 科学Jia | 来源:发表于2018-03-28 18:34 被阅读3923次

用简单的语言表达复杂,用熟悉的东西解释陌生。

SpringBoot创建一个简单的Web应用

  1. 首先登录https://start.spring.io/,选择Gradle + WEB来创建一个基于tomcat的web应用。
  2. 在创建好的web应用里,仅仅填写controller层来达到简单测试的目的。
    Contoller的代码如下:
package com.hellodocker.dockerdemo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author You Jia
 * @Date 3/28/2018 3:21 PM
 */
@RestController
public class Controller {
    @GetMapping("/HelloK8s")
    @ResponseBody
    String mongoDBupdate(String name) {
        return "Hello Docker !!!   Hello K8s !!!" ;
    }
}

  1. 运行Gradle build来生成一个该web应用的jar包。

创建Dockerfile文件

关于Dockerfile的预备知识

创建dockerfile之前,应该要知道一些它的基本知识,这里贴一个很形象的图,它解释了Dockerfile里的常用指令的含义。


第一次用Dockerfile打包SpringBoot的Java Web应用

这里特别需要指出的是, Dockerfile的指令根据作用可以分为两种:构建指令和设置指令。构建指令用于构建image,其指定的操作不会在运行image的容器上执行;设置指令用于设置image的属性,其指定的操作将在运行image的容器中执行。

特别推荐一篇关于dockerfile指令的解释,点击这里

Dockerfile实战

  1. 我在centos上创建了一个跟dockerApp相关的路径:

mkdir dockerApp

  1. 上传前面build成功的jar包到该路径下。
  2. 在dockerApp这个路径下创建dockerfile

touch dockerfile

Dockerfile的内容如下:

FROM openjdk:8
MAINTAINER YOU JIA
LABEL app="myApp" version="0.0.1" by="youjia"
COPY ./dockerdemo-0.0.1-SNAPSHOT.jar mydockerapp.jar
CMD java -jar mydockerapp.jar
  1. 执行 docker build -t myapp . 创建image。
    注意:这里的 . 代表当前路径

  2. Build成功以后,可以通过命令docker images查看已经创建的image。

    image.png
  3. 运行docker run --name mywebapp -p 8080:8080 -d myapp,跑起来!!!

跑起来了~~~

注:可以用docker logs参看自己的image日志,如果发现docker启动不了。。。
举个栗子:比如在我的用例里命令为: docker logs myapp

比本文更值得看的参考文献:

Using Docker to Deploy a Containerized Java Web App

以上。

第一次用Dockerfile打包SpringBoot的Java Web应用

相关文章

网友评论

      本文标题:第一次用Dockerfile打包SpringBoot的Java

      本文链接:https://www.haomeiwen.com/subject/lycucftx.html