在 docker 环境中使用 FluffOS 驱动(附编译说明)

FluffOS目前支持的所有主流的平台了,只是支持最完美的还是 ubuntu,比如在 MAC 平台上编译 fluffos v2019 就有问题,在这种情况下,我们可以使用 docker,不管是windows系统还是苹果系统,都能完美的体验像 ubuntu 一样编译驱动。

⚠️提示⚠️:最新fluffos集成了docker脚本,可以直接在fluffos目录使用以下指令编译:

docker build -t fluffos:master .

推荐在fluffos目录新建docker脚本文件build.sh,内容如下:

#!/bin/bash

git pull
rm -rf build
docker build -t fluffos:latest .

Docker FluffOS

Docker 镜像 : FluffOS 的 Ubuntu 编译环境。

如果你不想自己编译,推荐直接使用以下指令使用编译好的镜像:

docker pull fluffos/fluffos

如果需要 2017 版,请使用以下指令:

docker pull fluffos/fluffos:v2017

下载后可以直接驱动游戏,参照指令:

docker run -d --name mud -p 6666:6666 -v ~/mud:/opt/mud fluffos/fluffos /opt/mud/config.ini

具体说明请查看:https://hub.docker.com/r/fluffos/fluffos


如果你想自定义编译,请看以下编译说明。

1. 准备工作

创建编译 fluffos 源码的 docker 镜像,请确定已经安装了 docker 1.12+ 和 git ,docker 安装可以参考以下教程:

以下命令可能需要 sudo ,假设我们在 ~ 目录下操作,真正操作时,记得将下面代码中 ~ 替换为你新建 docker 目录位置的绝对路径。

下载镜像编译脚本到 ~/docker 目录中

cd ~ && mkdir docker && cd docker
git clone https://github.com/MudRen/docker_fluffos.git

下载 fluffos 源码到 ~/docker 目录中

cd ~/docker/
git clone https://github.com/fluffos/fluffos.git

2. 创建编译镜像

输入以下指令使用镜像脚本目录 docker_fluffos 中的配置文件创建编译镜像:

cd ~/docker/docker_fluffos/
./build.sh

成功后,输入 docker images 指令可以看到 REPOSITORY 下增加了 ubuntu 和 fluffos/build 两个 image,类似下面这样:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
fluffos/build       latest              cb172d841205        36 seconds ago      498MB
ubuntu              latest              2ca708c1c9cc        2 days ago          64.2MB
$

3. 编译驱动

利用镜像 fluffos/build 编译 fluffos 源码,生成驱动, 最终产生包括 driverportbind 的 2 个二进制文件。

docker_fluffos 目录中输入以下指令创建驱动

./build.sh 2019

如果需要编译 2017 版,请用以下指令:

./build.sh 2017

成功后,输入 ls -la docker_fluffos/bin/ 指令可以看到 driverportbind 两个二进制文件。

4. 创建驱动镜像

生成 fluffos 驱动镜像,实际就是把 2 个二进制文件 copy 进 docker image ,同时安装其运行需要的依赖库。

docker_fluffos 目录中输入以下指令创建驱动镜像

./build.sh fluffos

成功后,输入 docker images 指令可以看到 REPOSITORY 下增加了 fluffos,类似下面这样:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
fluffos/fluffos     latest              28b77a51812d        4 minutes ago       119MB
fluffos/build       latest              cb172d841205        33 minutes ago      498MB
ubuntu              latest              2ca708c1c9cc        2 days ago          64.2MB
$

5. 运行游戏

运行 MUD ,即用 fluffos 驱动 mudlib ,比如 fy、xkx、xyj 等,这里以炎黄( https://github.com/oiuv/mud )为例。

注意运行前修改运行时配置文件 config.ini 中 mudlib 目录位置

cd ~/docker
git clone https://github.com/oiuv/mud.git
# 修改 mud 中 config.ini 配置文件:mudlib directory : /opt/docker/mud
# 运行以下指令启动 mud (config.ini 中配置的端口为 6666,如果是其它 mud 请自己换成对应端口)
docker run -d --name mud -p 6666:6666 -v ~/docker/mud:/opt/docker/mud fluffos/fluffos /opt/docker/mud/config.ini

成功后,输入 docker ps 指令可以看到 0.0.0.0:6666->6666/tcp,失败可以输入 docker logs -f mud 指令查看 log,也可以进一步查看 mudlib 的 debug.log (比如 tail -f ~/docker/mud/log/debug.log)。

游戏地址

# MacOS
127.0.0.1 6666
# Windows
192.168.99.100 6666

游戏服务器管理

启动服务器:docker start mud
关闭服务器:docker stop mud  (推荐游戏中shutdown)
重启服务器:docker restart mud
京ICP备13031296号-4