yisier / nps

基于NPS 0.29.10 版本二开而来,NPS接力项目。公益云NPS:https://natnps.com
GNU General Public License v3.0
2.02k stars 256 forks source link

改完存储位置后映射访问报错,改动在PR中 #12

Closed zhangao4833 closed 1 year ago

zhangao4833 commented 1 year ago

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/v2@v2.4.2/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/v2@v2.4.2/worker_func.go:68 +0xb0

created by github.com/panjf2000/ants/v2.(*goWorkerWithFunc).run

/go/pkg/mod/github.com/panjf2000/ants/v2@v2.4.2/worker_func.go:48 +0x4c
yisier commented 1 year ago

我认为改存储位置的意义并不大,在 nps 的 Dockerfile 中已经将在把宿主机目录和容器目录conf做了映射。只需要在启动容器时将你的宿主机目录挂载到容器中就能实现。

docker run -d --restart=always --name nps --net=host -v /db/conf:/conf -v /etc/localtime:/etc/localtime:ro nps

zhangao4833 commented 1 year ago

在docker中没有问题,因为可以提前在主机目录填充配置文件,但在K8S中,就需要先把pod启动一次,创建持久化目录,然后再去找pvc目录填充配置二次启动,配置文件也无法使用K8S创建的配置,因为配置目录需要只可读,这样数据就无法写入,这样后面还可通过helm包直接进行安装。

zhangao4833 commented 1 year ago

当然,如果不考虑后期适配K8S环境,就可以不考虑这些