这波et升级了之后,版本是升为.net5.目录也做了很多调整.所以老的dockerfile自然是不能用了.更新了一波新的.但是遇到了几个坑.有兴趣的小伙伴可以试试.
路径分配
这次我们把docker作为长期维护内容来做的话.自然要给他一个固定的目录,我个人是这样的.所有docker相关文件都在这个文件夹内.下面具体讲讲文件内容
基础镜像
先看dockerfile完整文件,因为按照上面目录摆放的关系.单独生成的话需要在根目录下执行且指定路径
1 | docker build -t xx/xxx:latest -f ./DockerFiles/dockerfile/ServerDockerfile . |
docker compose就没有这个烦恼.直接在文件目录下执行docker-compose up即可
UdpDockerfile
1 | FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base |
ServerDockerfile
1 | FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base |
区别其实就是开放的接口是udp还是tcp了.
其中有一个坑,就是build环境不可以用sdk5.0.不然会有restore的时候报错问题.解决问题简单来说就是换一个镜像版本
问题详细说明: https://exerror.com/the-author-primary-signatures-timestamp-found-a-chain-building-issue-untrusted/
多容器编排
用最快的速度,docker 固定ip分配,bridge网络模式.简单整一个模拟多进程多机器的环境.这里基本构建是没问题的.但是实际上内部通信那里,内网ip绑定不上.让我头疼.明明之前的版本是可以的.基本思路没有问题.实际上如果真的模拟.可能需要swarm或者K8S..但是我真的不想用k8s
1 | version: '3.4' |
错误排除
如下图的话.说明kcp.so文件是老的.整个新的替换一下
遗留问题
寻路模块,没有编译一个新的linux环境可用的库.所以map进程会报错我浅尝辄止.希望有人整一下.指路:https://www.lfzxb.top/cpp-recastnavigation-to-unity-or-server/
win环境的话按照上面链接就可以了.但是linux环境遇到的问题太多.暂时搁置