微服务应用如何代码更新

查看 37|回复 0
作者:batchfy   
我们有一个 web 应用,采用的微服务架构,各个部件都是用独立的 docker 环境运行,整体应用用 docker compose 管理。整个项目前后端都是 js 。
现在有一个问题,就是我们的项目源码都是打包到 docker image 的,这就导致源码只要有变动,就要重新 build docker image ,重复执行大量的 apt-get, npm install 等操作,十分耗时。前端还需要重复执行编译,更加耗时了。
我们目前有 production ,test 和 develop 三个环境,而且项目处于迭代阶段,更新比较多。我感觉每次更新版本的过程太慢了,特别是 production 环境是个 vps ,cpu 比较弱,编译起来很吃力。更蛋疼的是,我们有一个环境在国内云上,apt-get 和 npm 都会有各种网络问题。
想请教各位,有没有在一处配置,其它机器 只用传输数据 的发布方式?
我的意思是,我在本地机器上执行 apt-get, npm 和前端 build ,然后打包成一个文件,其它环境只需要复制这个文件就能跑起来的?
我尝试过的:
[ol]
  • 源代码的路径通过 volumn 挂载到 docker container 内,这样改源代码就不用重新 build docker image 。这样后台代码没有问题,前端代码没法在 dockerfile 里面 build (因为 build 阶段 volume 还没有挂载上去)。
  • 在本地机器上配置好,然后用 docker save 将所有 containers 存成文件,复制到其它环境。这样子存下来的文件有 10+G ,已经放弃。
    [/ol]
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部