fireworksV2
V2EX  ›  Java

使用 Docker 部署项目,编码注意事项有哪些?

  •  
  •   fireworksV2 · Sep 27, 2023 · 3248 views
    This topic created in 1137 days ago, the information mentioned may be changed or developed.

    Spring Boot 项目,Docker 部署相比于非 Dokcer 部署,在编码过程中,应该注意哪些事项。

    14 replies  •  2023-09-28 14:02:11 +08:00
    coderxy
    coderxy
    Sep 27, 2023
    1
    没啥要注意的,部署方式跟业务代码没啥关系。
    Gota
    Gota
    Sep 27, 2023 via iPhone
    2
    最好手动指定 jvm 和 pod 的内存,防止线上出现 oom 。
    Gota
    Gota
    Sep 27, 2023 via iPhone
    3
    编码过程就注意下有没有对 native 的依赖,有时候基底镜像的 so 不一定全。
    naidelii
    naidelii
    Sep 27, 2023
    5
    注意设置 docker 日志大小,不然一直增长可能会把磁盘撑满,导致服务异常
    rayae
    rayae
    Sep 27, 2023
    6
    特权容器、数据卷持久化
    lsk569937453
    lsk569937453
    Sep 27, 2023
    7
    @luomao docker 中使用的 java 版本最好是 8u191 以后的。

    这个和使用不使用 docker 有关系吗?
    xiaooloong
    xiaooloong
    Sep 27, 2023
    8
    如果不走 k8s 的话感觉用 docker 更麻烦

    毕竟已经习惯了走 k8s 的网络管理 和 env 管理 了
    tramm
    tramm
    Sep 28, 2023
    9
    对我来说, 主要注意时区
    zpf124
    zpf124
    Sep 28, 2023
    10
    @lsk569937453 早期 jre 无法识别 docker 容器资源 limit 限制,如果不指定 Xmx 之类的参数会直接按照宿主机内存大小进行分配,容易超限 oom , 后续不知道 java 10 几来着 在 openjdk 级别做了一些通用设置可以识别 jvm 可以支持识别 容器限制了。

    java 8 按道理后面的版本可能也有加类似的功能,只是当时还是几个不同提供商自己私有实现,没统一规范。
    guochao
    guochao
    Sep 28, 2023
    11
    Dockerfile 略微注意一下就好了

    - 尽量使用多阶段构建,要不然代码拷到 layer 里面了
    - 慎用 alpine ,不清楚的时候一律用 debian 作为基础镜像
    - 部署环境内核比较新的时候,base 不要使用 centos7 这种带着很老的 glibc 的 image ,java 和库依赖 glibc 的时候,很老的 glibc 在新内核上会有问题
    guochao
    guochao
    Sep 28, 2023❤️1
    12
    补充内存计算的问题:java8 用 8u372 及以上版本,修了 cgroup2 支持,这是很多新发行版默认的 cgroup 实现,涉及到内存的限制和计算。

    java11 以上可能没这个问题了
    luomao
    luomao
    Sep 28, 2023
    13
    @lsk569937453 你是真的不看我贴出来的文章呀
    chendy
    chendy
    Sep 28, 2023
    14
    应用本身没啥,镜像有一些建议
    1. 基础镜像建议用官方的 & 不是 alpine 的 & JDK 的不是 JRE 的,从优雅的角度来说这样的镜像攻击面略大但是从实用的角度这样的镜像内置工具更全
    2. 做好分层,springboot 自己有解包的命令,可以分出依赖和代码,能真正缩小镜像体积
    3. 外挂配置文件
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1911 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 09:12 · PVG 17:12 · LAX 01:12 · JFK 04:12
    ♥ Do have faith in what you're doing.