产品发布
基于 cmdr 的 app 有哪些额外检查表
List
如果你基于 cmdr 开发 CLI app,那么注意我们对发布构建脚本也有所要求:
- 你需要在 conf 子包(
github.com/hedzr/cmdr/v2/conf
)中写入构建信息- 包括版本号,git 标记,等等
这些信息将会被用于在多个内建命令和标志中被体现,同时它们也是供应链信息清单的一部分。
它们是通过 go build 命令行参数的方式实现的。
Dockerfile
为了简化文档书写,我们简单地提供一个 Dockerfile 样本,用于向你展示打包应用程序时应该写入的内容:
使用这个 Dockerfile 的方法是发出下面的命令:
你需要修订 Dockerfile 的具体内容,替换你的 metadata。
Bash 脚本方式
下面也提供一个 Bash 脚本来展示恰当的打包方式:
要素
上面的 Dockerfile 所展示的要素包括:
在 go build 命令行中提供 -X "github.com/hedzr/cmdr/conf.Version=${VERSION}"
等选项,具体细节请参考相应的 conf 包中的变量定义,以此方式来提供基础的 metadata。
在制作 Docker 容器的时候,通过 bash 方式搜集 metadata,并提供给 Dockerfile。
部署目录
根据惯例,典型的应用程序部署目的地是 /usr/local/lib/<appname>
。
而惯用的相关文件夹首选为
-
/var/run/<app>.sock
-
/var/run/<app>.pid
-
/var/log/<app>/<app>.log
-
/var/cache/<app>/
-
/etc/<app>/<app>.toml
-
/etc/<app>/conf.d/*.toml
等等。
:end:
How is this guide?
Edit on GitHub
Last updated on