使用Node.js/React App处理构建-Jenkins和Docker的最佳实践

使用Node.js/React App处理构建-Jenkins和Docker的最佳实践,node.js,git,amazon-web-services,reactjs,jenkins,Node.js,Git,Amazon Web Services,Reactjs,Jenkins,今天,我们创建了Node.js/ReactJS应用程序。我们正在使用Bitbucket(git repo)、Docker容器以及Jenkins+AWS ECS(弹性容器服务) 我们今天使用的过程是,当我们准备好部署并准备好新版本时,我们进入/assets目录并运行命令gulpbuild。这将处理整个构建/缩小过程,并最终为我们提供版本号。从这里,我们将其签入git repo,因为它有版本,所以它成为repo中的标记。好的,对吗?:) 从这里开始,在Jenkins中,我们可以简单地运行构建,例如选

今天,我们创建了Node.js/ReactJS应用程序。我们正在使用Bitbucket(git repo)、Docker容器以及Jenkins+AWS ECS(弹性容器服务)

我们今天使用的过程是,当我们准备好部署并准备好新版本时,我们进入/assets目录并运行命令
gulpbuild
。这将处理整个构建/缩小过程,并最终为我们提供版本号。从这里,我们将其签入git repo,因为它有版本,所以它成为repo中的标记。好的,对吗?:)

从这里开始,在Jenkins中,我们可以简单地运行构建,例如选择Prod/Master,它负责抓取所有npm包,将docker映像推送到ECR,更新ECS中的版本。服务已经启动并运行

在我看来,我们不应该在本地运行这个
gulpbuild
命令,而必须检查gitrepo。更不用说,这让git repo有点混乱,对于其他开发人员来说,将“已编译”的文件缩小并不是一个很好的解决方案

最好的做法是在詹金斯身上运行这个
gulpbuild

但是,我相信我们仍然希望在git回购协议中保留标签?还有其他方法可以实现这一点吗

有没有人处理过类似的问题,或者有这样的最佳实践

真想听听你的想法

提前谢谢

没有“最佳实践”,但如果您希望它不那么凌乱,可以使用Jenkins文件:


不管你有什么命令,这只是詹金斯的最佳实践。所以应该在詹金斯身上运行“吞咽式”构建。唯一的过程应该是提交和推送。其余的由詹金斯处理。

谢谢,明白了。但是,难道我们不想在git repo中通过标签维护“版本”吗?既然是gulp构建在技术上创建了“版本”,我们该怎么做呢?这取决于您的管道,但我也做了类似的事情,让我的deploy命令通过读取版本文件并将其用于ECSI see中的标记来强制版本,所以您的deploy命令从代码库中提取版本文件?然后用它来标记ECS?您是否也在git repo中使用标记?