Bootstrap

docker中netty使用【记坑手册】

由于业务需要,java项目中使用了netty框架的websocket,在本地运行时,一切正常,项目正常启动,netty正常启动,websocket正常使用,将项目使用docker部署到服务器上后,问题出现了,日志仍然显示netty服务正常启动,但是websocket始终无法连接。

我的项目中netty相关配置如下(yml)

部署以后运行的命令为,这里使用端口映射启动,8080为本地项目运行端口,映射至服务器的9500端口

docker run -p 9500:8080 myapp

如此运行以后项目正常启动,除websocket以外所有接口都正常使用,唯有websocket无法连接。

解决:

由于在本地运行时,将netty服务监听端口设置为8720,使用docker部署后仍然需要配置端口映射,所以运行命令应修改如下

docker run -p  9500:8080   -p  8720:8720  myapp

为netty服务同样配置端口映射,再次连接websocket,连接成功。

;