容器项目滚动更新?

目前有一个场景问题,可能是自身不太了解,所以求助一下各位。
1.目前有一个NestJs - Node运行时项目 ,问题如下:
1.本地开发完后 ,服务器git pull 拉取涉及如下问题: 1.项目依赖更新、项目代码更新,容器重启 。
请问我该如何才能做到无感知、零停机更新? 因为是运行时环境,如果每次都重启容器来更新代码和安装依赖,会导致有一段时间的服务不可用,这是不可取的? 请问如何才能做到零停机无感知更新呢? Kubernetes可不可以做? 如果可以或者不可以我该如何做? 目前每次本地开发完后,都需要手动重启,然后那一段时间服务就崩溃不可访问。

而且每次手动重启Node容器的时候,经常出现所谓的超时的字样? 这是为什么?

到目前位置我还没有解决该如何操作Node后端项目的 部署和更新,每次git pull 以后都需要手动重启容器。 如果需要dockerfile来构建镜像 来快速更新 请问该怎么做? 这一方面的知识我不是很懂

我建议你通过 dockerfile 把自己的 node 项目容器化,打包成 Image ,然后使用 docker-compose 来管理,更新的话 就是修改 docker-compose.yaml 文件中的镜像版本,你把 Image 上传到机器中,然后 docker-compose down 然后 up 就可以更新了

1 个赞

我不知道这个 docker-compose 怎么管理这个容器,我现在是 在服务器的地址上,比如 /usr/local/node_serve 去git clone 到 3dvideo这个文件中,里面存在一个Dockerfile文件, 每次git pull 以后 我都会手动构建一次镜像。但是构建以后 它会创建一个容器 且这个容器只有IP 地址,没有端口号,没有日志,启动也异常。 我不太理解这个具体流程。如果通过 docker-compose 来管理该如何做? 是否有具体流程,而且我是需要同一个项目做2个实例,只不过端口号不一致,一个端口是3000 一个3001 。这样就方便我做负载均衡以及无感知更新

这个需要你去了解 docker-compose 的相关知识

主要是我在1Panel面板中找不到docker-compose的配置位置。 还是说我需要在项目中单独配置一个这样的文件?

你先脱离面板 然后使用 docker-compose

脱离面板? 不太懂咯

就是你要自己学习 docker-compose

我思考一下 。因为主要是逻辑有点混乱,没有时间去具体学习docker 并且不知道如何在1Panel中搭配使用。所以有很多流程上的问题不太懂