
NetBox 官方的 netbox-docker 本身不是一个单一的镜像,而是一个多容器编排项目(包含了 NetBox 核心、PostgreSQL 数据库、Redis、Redis-Worker 等多个组件)。
直接使用官方配置可以方便的体验,但当你需要修改一些配置,需要在镜像中打包自己用的插件,做自己的镜像时,就需要管理自己的修改版了。
因此,我使用新分支 custom 管理自己的配置变动。
首先克隆一份官方分支待用:
git clone https://github.com/netbox-community/netbox-docker.git创建一个 custom 分支:
git checkout -b custom
# 或者(新版本Git 2.23+ 推荐使用)
git switch -c custom在这个分支里修改自己的配置,运行服务,提交自己的新版本。
我当前用的版本是 4.0.2, 下一步我要跨版本升到 5.0.0,这一版特别提到
NetBox 会升到4.6.* 是个跨版本。祝我好运吧!

首先是数据备份,用备份数据重启一个服务,不要直接在线上直升,确认没问题再升线上。

实际存储路径在 /var/lib/docker/volumes 下。(未来要切换到单独挂载的数据路径)
还有一个自定义挂载的插件路径:/data/netbox-docker/plugins/
重新部署自己的 custom 版本,拉起一个新服务,同步数据后确认没问题。然后停掉这个服务,准备在此基础上升级。
# 1.开启服务
docker compose up -d
# 2.检查服务
# 3.停止服务
docker compose down下面开始升级!
切到 custom 分枝,合并 5.0.0 的tag
git switch custom
git fetch --tags
git tag | tail
git merge 5.0.0
现在5.0.0的内容已经合并了过来,我们看看这个版本修改了什么
git diff HEAD^ HEAD升级了uv版本:

升级了ubuntu的版本:

升级了netbox镜像到V4.6:

还有一些库的升级:

可以看到,这个版本主要就是升级了Netbox版本,从4.5升到4.6,其他各个路径的挂载等毫无变化。
确认下旧版本提前down掉了,如果忘记了,记得切回上个版本down掉再回来
git switch -d HEAD~1
docker compose down
git switch custom 好了,直接启动新版本,为了查看过程,我们不在后台启动,也就是不加-d参数
docker compose up可以看到netbox启动时进行了数据库的 migrations

最后启动了工作进程,健康检查也OK

打开前端,哈哈,升级成功了

我们重开一个终端,再用 -d 参数启动一次
docker compose up -d然后多操作操作,检查下各个部分是否有问题。没有问题就去升级线上吧。