美文网首页
spring-boot Docker 部署

spring-boot Docker 部署

作者: EricDD | 来源:发表于2019-07-25 13:26 被阅读0次

    spring-boot Docker 部署

    环境

    docker 18.09.7-ce
    spring-boot 2.1.6.RELEASE
    JDK 1.8

    开始

    1. https://start.spring.io/下载一个demo,只依赖web模块,导入IDE.
    2. 写点测试代码
    @SpringBootApplication
    @RestController
    @RequestMapping("/demo")
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
        @GetMapping
        public String home(){
            return "home";
        }
    
    }
    
    spring.jackson.time-zone=GMT+8
    spring.jackson.date-format=yyyy-MM-dd HH:mm
    
    1. 编写 Dockerfile
    FROM gcr.azk8s.cn/distroless/java
    
    VOLUME /tmp
    ADD app.jar  app.jar
    
    EXPOSE 8080
    
    ENTRYPOINT ["java","-jar","app.jar"]
    
    1. 将测试代码打包为可执行jar文件。并执行Docker build命令。
    sudo docker build -t demo-app:1.0 -f ./BootDockerfile ./
    
    # demo-app  打包仓库名
    # 1.0 打包tag
    # ./BootDockerfile 指定Dockerfile
    # ./ 指定可执行jar 目录
    
    1. 查看docker 镜像
    sudo docker images
    
    REPOSITORY                                       TAG                 IMAGE ID            CREATED             SIZE
    demo-app                                         1.0                 f2b2c312684d        5 seconds ago       142MB
    
    1. 执行并测试
    sudo docker run -p 8080:8080 -t demo-app:1.0
    
    1.png

    常见问题

    基础镜像,网上一些资源使用的是 java:8,但是生成的镜像400多M实在有点大。所以我使用了Google 开源的项目 distrolessDistroless 镜像只包含应用程序及其运行时依赖项,不包含包管理器、shell 以及在标准 Linux 发行版中可以找到的任何其他程序。

    Distroless 镜像网络问题,直接使用gcr.io/distroless/java,docker构建镜像是无法下载所以使用了,开源社开源镜像站点

    时区问题
    Distroless 镜像不包含linux 发行版中的任何其他程序,所以
    RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone 命令设置时区不好使。
    修改Dockerfile
    ENTRYPOINT ["java","-Duser.timezone=GMT+8","-jar","app.jar"]

    编码问题
    保存到数据库内容全部为???
    修改Dockerfile
    ENTRYPOINT ["java","-Duser.timezone=GMT+8","-Dfile.encoding=utf-8","-jar","app.jar"]

    相关文章

      网友评论

          本文标题:spring-boot Docker 部署

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