📝 源码目录结构规范

  • Dockerfile

    • Docker 镜像文件

  • Chart.yaml

    • Yaml文件,用来描述chart的基本信息,包括名称版本等。

  • requirements.yaml

    • 当前Chart依赖的其他chart的说明

  • values.yaml

    • 定义变量,如:所需CPU、内存资源、镜像仓库地址、环境变量定义等

  • /templates

    • configmap.yaml

      • 对应k8s模板文件中 configmap 文件

    • deployment.yaml

      • 对应k8s模板文件中 deployment 文件

    • _helpers.tpl

      • 说明文本文件,helm install之后展示给用户看的内容

    • NOTES.txt

      • 如何通过kubectl命令查看该Chart部署好的POD kubectl get pods ‐w ‐‐namespace {{ .Release.Namespace }} ‐l release={{ .Release.Name }}

      • 如果服务对外提供服务,如何查看服务地址 kubectl get svc ‐‐namespace {{ .Release.Namespace }} ‐l release={{ .Release.Name }}

      • 如何升级Chart,如 helm upgrade {{ .Release.Name }} stable/demo

    • service.yaml

  • README.md

  • CHANGELOG.md

  • /src

Dockerfile 举例
FROM maven3-jdk11
MAINTAINER chlym
LABEL Description="hello" Vendor="xxxx" Version="0.0.1"
USER root
WORKDIR /projects
COPY ./target/gateway.jar /opt/web/shoulder/gateway/gateway.jar
COPY ./src/main/resources/*.yml /opt/web/shoulder/gateway/
ENTRYPOINT ["java","-jar" ,"gateway.jar"]

💿 成果物目录结构规范

成果物为发布之后的,并不是源码目录结构,参考了 jdk、tomcat、maven、gradle、idea 等发布版本目录结构。

  • bin

    • 可执行程序、动态库、数据库初始化脚本(db.init.sql)、版本升级数据库脚本(db.update.sql)。

    • /tools

      • 维护、检测、监控等工具。

    • /script

      • 完整性校验脚本 checkIntegrity.sh

      • 自定义脚本,方便在安装、卸载、升级前后执行特殊处理;

      • 运行健康状态检测脚本

  • lib

    • 主要为 bin 目录的运行依赖,如动态链接库 .dll 、依赖jar包 .jar

    • include(c++专属

    • 主要为 c/c++ 类使用,如 *.h 头文件。

  • META-INF

    • /icon 应用图标

  • conf

    • 存放启动时读取的外部配置文件,如 config.conf、config.conf.bak;升级前原配置文件config.beforeUpdate;

  • resource

    • 资源目录,存放资源文件、资源包。

  • language

    • 包含一个或多个名称为语言标识的子目录,如 zh_CNen_US,子目录下包含对应语言的翻译资源文件。

      • 三级目录中特殊文件:translate.properties 允许任何用户读取

  • doc

    • /api 目录

      • 接口json文档 <appId> Api.swagger.json。

    • /demo 目录

      • 存放开发对接或使用示例。

    • 设计(需说明权限)、技术、规格清单、接口介绍、端口清单、测试报告、遗留缺陷等。

    • 软件功能描述文件 function.md

    • 软件性能描述文件 performance.md

    • 版本更新说明 CHANGELOG.md

    • 依赖环境 environment.md

    • 实现的监控信息描述 monitor.md

    • 报警规则 <appId>AlertRules.yml

    • 使用指南 guide.md/help.md

    • 常见问题 faq.md

  • data

    • 数据目录,存放运行时产生的数据文件。

    • 升级/卸载保留数据,备份数据用于恢复。

  • download

    • 支持使用者下载,如附带的 APP、客户端等 apkinstall.exe

  • logs

    • 日志目录,软件运行中的日志记录到该目录中。

  • plugins

    • 存放已安装插件

  • 协议 license.md

  • 简介 readme.md