跳转到内容
彼岸论坛
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[Node.js] 分享一下在 node.js 项目里打包 docker 镜像的小技巧.


小天管理

已推荐帖子

在实际的项目开发时,打包 Docker 镜像,其实还是有些细节需要注意

例如,镜像的 name 、tag 如何更准确的表达当前代码的信息。

我认为,镜像的名字以这种格式会比较好 : 私有仓库/项目/产品-git 分支:时间-git hash

当然, 这个观点,大家可能有不同的意见,只是这个格式比较适合我们。

基于以上的想法, 可以在 package.json 的 scripts 里, 增加:

// package.json
{
    ...
    "scripts": {
        ...
        "build-img": "docker build -t registry.xxxxx.com/$(pwd | rev | cut -d / -f 1-2 - | rev)-$(git rev-parse --abbrev-ref HEAD):$(git log --pretty=%ad-%h --date=format:'%y%m%d%H%M' -n 1) ."
        ...
    }
    ...
}

使用时, 直接 npm run build-img 即可, 打包出来的镜像名称类似: registry.xxxxx.com/上级目录名/当前目录名-分支名:yyMMddmmss-hash

上面的脚本,其实有个关于代码目录的约定: 在项目的目录下,clone 各个 git 仓库的代码 .

通过上面这种方式打包镜像,好处是从镜像名称就能知道 这个镜像属于哪个项目,哪个产品,所属 git 分支,最后一次签入的时间和 hash (即代码的当前状态) 。

并且,只要代码没有变动(或者应该说,没有进行 git commit),任何时候从 仓库 clone 代码,再次打包镜像时,名称都是一致的。

简单来说, 可以保持镜像名称和 git 仓库的关系。

意见的链接
分享到其他网站

加入讨论

您现在可以发表并稍后注册. 如果您是会员,请现在登录来参与讨论.

游客
回复主题...

×   粘贴为富文本.   粘贴为纯文本来代替

  只允许使用75个表情符号.

×   您的链接已自动嵌入.   显示为链接来代替

×   您之前的内容已恢复.   清除编辑器

×   您无法直接粘贴图片.要从网址上传或插入图片.

  • 游客注册

    游客注册

  • 会员

  • 最新的状态更新

    没有最新的状态更新
  • 最近查看

    • 没有会员查看此页面.
×
×
  • 创建新的...