这几天看到暴雪准备开放怀旧服的新闻,突然想到几年前用大芒果window一键服务端自己搭建过服务,就想着在Linux环境下重新编译一套,毕竟Linux作为服务端,性能和稳定性都会高一些,于是在mac虚拟机中安了个centos7,按照官方文档搞了一套。

虚拟中搭建完成之后,想着不如在docker中做几个镜像,到时一键启动就可以搭建完成一套服务端,多么轻松。

经过几天的努力,完成了60级镜像和70级镜像的制作,由于镜像有些大,目前只把60级镜像推送到了阿里云,有兴趣的朋友可以pull下来玩玩,当然客户端需要自己准备了,下面给出镜像地址和操作说明,后面再针对此次搭建过程作一些记录。

60级验证服务器镜像:https://dev.aliyun.com/detail.html?spm=5176.1972343.2.2.otKSdx&repoId=86540

60级世界服务器镜像:https://dev.aliyun.com/detail.html?spm=5176.1972343.2.6.otKSdx&repoId=86588

60级数据库镜像:https://dev.aliyun.com/detail.html?spm=5176.1972343.2.18.otKSdx&repoId=86688

说明:

1.拉取镜像。

2.编写docker-compose.yml

version: "2"
services:
wow60-database:
image: registry.cn-shenzhen.aliyuncs.com/olivercj/wow60-database:0.1
container_name: wow60-database
command:
- /run.sh
ports:
- 3306:3306/tcp
networks:
- wow60-net
wow60-realmd:
image: registry.cn-shenzhen.aliyuncs.com/olivercj/wow60-realmd:0.2
command:
- /data/run.sh
ports:
- 3724:3724/tcp
depends_on:
- wow60-database
networks:
- wow60-net
wow60-world-0:
image: registry.cn-shenzhen.aliyuncs.com/olivercj/wow60-world:0.2
command:
- /data/run.sh
ports:
- 8085:8085/tcp
depends_on:
- wow60-realmd
networks:
- wow60-net networks:
wow60-net:
external: true

3.创建网络

docker network create wow60-net

4.启动

docker-compose -f docker-composer.yml up -d

5.完成

6.注意

1).wow60-world容器中的世界服务很大几率自动启动失败,需要手动启动

启动: nohup /data/mangos/bin/mangosd -c /data/mangos/etc/mangosd.conf >/data/nohup.log >& &

关闭:/data/mangos/bin/mangosd -s stop

2).wow60-database镜像建议依赖此镜像再重新build一个镜像,避免数据丢失

3).如果想要搭建多个世界服务器,我将在后面搭建过程中进行说明。

4).验证服务器一般情况一台就够了,可以支持多个世界服务

5).镜像基于centos制作,可启动容器后,登入容器进行操作

docker exec -it container_name /bin/bash

6).如果对镜像有修改,可保存修改

docker commit container_name image_name:image_version

客户端说明:

1. 60级客户端下载地址:http://www.nfuwow.com/Simple/detail/artid/75.html,基本上1.12.1的客户端都通用,建议下载中文纯净版

2. 修改realmlist.wtf,如果是本机docker,则直接改成

Set realmlist 127.0.0.1

3. 删除WTF文件夹

4.点击WOW.EXE进入游戏

汉化说明:

1.汉化数据库:https://github.com/keyshuwen/wow_db_chinese/tree/DB-Zero(1.12.3)

2.启动容器后,用数据库管理软件进入容器数据库,默认账号信息如下:

host:127.0.0.1
port:
username:root
password:

3.按照汉化数据库SQL手动导入,建议导入之前检查一下或者做一下数据备份

4.后面我会提交一份汉化后的数据库镜像

5.数据库更新完成后,需要删除客户端cache/WDB文件夹,重新进入游戏即可

docker下编译mangoszero WOW60级服务端(一)的更多相关文章

  1. docker下编译mangoszero WOW60级服务端(二)

    开始搭建基于docker的mangoszero WOW服务端,我自己的操作系统是mac os,其他平台操作可以等价替换 1.准备工作 (1) 安装docker,参考docker官方文档,https:/ ...

  2. docker下编译mangoszero WOW60级服务端(三)

    开始构建WOW服务端通用镜像 第二篇文章中准备工作环节已经从github拉取了mangosd源代码,这里我们就可以直接开始编写dockerfile并进行编译 (1) 进入mangos/wow60/ma ...

  3. [UE4]如何编译部署独立专用服务端(Standalone Dedicated Server)

    这是论坛上对UE服务端功能的回答,意思是UE4提供了网游服务端所具备的特性,包括位移修正.物理碰撞检测.这些特性不是UE4才加入,早期UE版本就有了. https://answers.unrealen ...

  4. Centos下使用gitosis配置管理git服务端(转载)

    From:http://www.cnblogs.com/ahauzyy/archive/2013/04/08/3043384.html 说明:由于条件有限,我这里使用的是同一台centos的,但教程内 ...

  5. TCP下的套接字服务端实现并发 作业题

    # 服务端 import socket from threading import Thread """ 服务端 1.要有固定的IP和PORT 2.24小时不间断提供服务 ...

  6. 【修改端口号】linux下修改apache,nginx服务端口号

    一.linux下修改apache端口号 yum安装后,apache配置文件: /etc/httpd/conf/httpd.conf 找到apache目录下的 httpd.conf, 使用vi 打开,找 ...

  7. linux下修改apache,nginx服务端口号

    一.linux下修改apache端口号 yum安装后,apache配置文件: /etc/httpd/conf/httpd.conf 找到apache目录下的 httpd.conf, 使用vi 打开,找 ...

  8. ubuntu 14.04 下 安装samba 及SSH 服务端的方法

    之前说了 FTP服务器的搭建:http://www.cnblogs.com/bcsflilong/p/4200139.html 今天说一下samba 和ssh服务器的搭建. 先说samba 吧. 在u ...

  9. ubuntu下编译源码级QT

    注意必须好好看官方文档: http://qt-project.org/doc/qt-5/linux.html 包括编译Qt库依赖的包等等. 编译过程中发现以下错误: All the OpenGL fu ...

随机推荐

  1. Ionic3学习笔记(四)修改返回按钮文字、颜色

    本文为原创文章,转载请标明出处 目录 修改返回按钮文字 修改返回按钮颜色 1. 修改返回按钮文字 参考官网 Ionic API---Config 文档 可在 ./src/app/app.module. ...

  2. P60 2.6

    import java.util.Scanner; public class Num { public static void main(String[] args) { Scanner input ...

  3. Google Authenticator 如何集成(U盾的实现原理相同)

    Google Authenticator是一个类似U盾的二次验证工具,Google提供了它的开源客户端(https://github.com/google/google-authenticator)里 ...

  4. 面试题:Two Sum

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  5. Emgu.CV(三)

    像素交换 private void btn_Exchange_Click(object sender, EventArgs e) { if (imageBox1.Image != null) { va ...

  6. Git 工作流的正确打开方式

    前言 一直在使用git做版本控制,也一直工作很顺利,直到和别人发生冲突的时候.这才注意到git 工作流并不是那么简单.比如,之前遇到的清理历史.百度到的资料很多,重复性也很多,但实践性操作很少,我很难 ...

  7. 关于Java和JavaScript对字符串截取处理的总结

    在JavaWeb开发中,经常需要对字符串进行处理,包括Java语言和JS语言,总是容易弄混淆,这里简单对比一下两种语言对于字符串截取方法. 一.先看Java public class StringDe ...

  8. CountDownLatch、CyclicBarrier和 Semaphore比较

    1)CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同: CountDownLatch一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行: ...

  9. JAVA中java.util.Date、java.sql.Timestamp和String之间的互相转换

    java.util.Date与的String互转 java.util.Date---->String /** * 将java.util.Date对象转化为String字符串 * @param d ...

  10. PHP的Session机制

    客户端浏览器和服务器之间通信使用的http协议是一种无状态的协议,在它看来,客户端发起的每个请求都是独立.没有关联的.然而,在实际的Web应用开发中,服务器却经常需要根据用户以往的一些状态或数据对请求 ...