改完存储位置后映射访问报错,改动在PR中
2022/11/01 15:06:02 worker with func exits from a panic: runtime error: invalid memory address or nil pointer dereference
2022/11/01 15:06:02 worker with func exits from panic: goroutine 72 [running]:
github.com/panjf2000/ants/v2.(*goWorkerWithFunc).run.func1.1(0xc00030a2a0)
/go/pkg/mod/github.com/panjf2000/ants/[email protected]/worker_func.go:58 +0x165
panic(0xa66500, 0xf62ce0)
/usr/local/go/src/runtime/panic.go:969 +0x1b9
ehang.io/nps/lib/file.(*Flow).Add(0x0, 0x8000, 0x8000)
/go/src/ehang.io/nps/lib/file/obj.go:21 +0x33
ehang.io/nps/lib/goroutine.CopyBuffer(0x7efe6aebe858, 0xc000348020, 0xbd9960, 0xc000316050, 0x0, 0x0, 0xc0003043f0, 0xd, 0x0, 0x0)
/go/src/ehang.io/nps/lib/goroutine/pool.go:81 +0x2db
ehang.io/nps/lib/goroutine.copyConnGroup(0xad7d00, 0xc00031f630)
/go/src/ehang.io/nps/lib/goroutine/pool.go:114 +0x15d
github.com/panjf2000/ants/v2.(*goWorkerWithFunc).run.func1(0xc00030a2a0)
/go/pkg/mod/github.com/panjf2000/ants/[email protected]/worker_func.go:68 +0xb0
created by github.com/panjf2000/ants/v2.(*goWorkerWithFunc).run
/go/pkg/mod/github.com/panjf2000/ants/[email protected]/worker_func.go:48 +0x4c
我认为改存储位置的意义并不大,在 nps 的 Dockerfile 中已经将在把宿主机目录和容器目录conf做了映射。只需要在启动容器时将你的宿主机目录挂载到容器中就能实现。
docker run -d --restart=always --name nps --net=host -v /db/conf:/conf -v /etc/localtime:/etc/localtime:ro nps
在docker中没有问题,因为可以提前在主机目录填充配置文件,但在K8S中,就需要先把pod启动一次,创建持久化目录,然后再去找pvc目录填充配置二次启动,配置文件也无法使用K8S创建的配置,因为配置目录需要只可读,这样数据就无法写入,这样后面还可通过helm包直接进行安装。
当然,如果不考虑后期适配K8S环境,就可以不考虑这些