通过Docker搭个游戏——疯狂大陆(Pkland)

        最近在研究我的服务器,在服务器上搭了很多docker的项目,然后找着找着发现一个能用Docker配置环境的游戏叫Pkland。

        项目地址:GitHub - popkarthb/pkland: 疯狂大陆是一款多人在线的战略游戏。 游戏操作简捷,您仅需要使用浏览器就可以在任何时间任何地点进行游戏。 疯狂大陆遵循完全人与人的对抗和合作,作为一名将领您将与成千上万的玩家共处在一片疯狂而又无序的世界中。 你所关注的是如何发展自己..疯狂大陆是一款多人在线的战略游戏。 游戏操作简捷,您仅需要使用浏览器就可以在任何时间任何地点进行游戏。 疯狂大陆遵循完全人与人的对抗和合作,作为一名将领您将与成千上万的玩家共处在一片疯狂而又无序的世界中。 你所关注的是如何发展自己.. - popkarthb/pklandhttps://github.com/popkarthb/pkland        有官服,可以先去体验一下:http://www.pkland.lol/

        当然了这是一个能多人对战的游戏,所以如果搭私服没人玩还是去官服爽玩吧233

        还有QQ群:515238858,想注册估计得让管理帮忙激活账号。(不知道管理员现在有没有关掉邮箱验证)

        来几张我本地搭好后游玩的图片。

        我感觉像是文字放置版红警。(但我没玩过红警,说错了请见谅)        

        看着挺不错,但是在我安装的时候着实痛苦,虽说官服是完整的,但是在Github上我们下载下来的源代码有一些缺失,导致我们在启动docker compose和配置数据库时有一些问题,现在我在CentOS虚拟机上搭建一遍作为演示。

        个人比较懒,不想再讲一遍docker和docker compose了,就当各位都安装并且配置好了下载源吧。

        从Github下载项目代码包,放到系统里,因为只是演示,我就放桌面了。

        在目录里打开终端,或者从已有终端cd过去。

        源码包里是自带docker-compose.yml的,但这个时候直接up就会报错。

        编辑docker-compose.yml文件,你会发现其实是有个缩进错误。

        其实还有一些别的小问题,不影响启动,但是着实让我难受,所以放一个我修改的版本吧。

services:web:image: webdevops/php-apache-devdepends_on:- dbvolumes:- .:/appenvironment:DB_HOST: dbDB_USER: 2moons # 数据库账户,和下面的MYSQL_USER相同DB_PASSWORD: 2moons # 数据库密码,和下面的MYSQL_PASSWORD相同DB_NAME: 2moons # 游戏的数据库,和下面的MYSQL_DATABASE相同ADMIN_NAME: admin # 游戏服务器管理员账号ADMIN_PASSWORD: test # 管理员密码ADMIN_MAIL: mail@example.comports:- 80:80 # 冒号之前的80可以改成你想要的端口# 这里其实还有个443端口,并且自带证书,不过我在服务器上用Nginx Proxy Manager反代了,用不着了networks:- 2moonsdb:image: mariadbenvironment:MYSQL_ROOT_PASSWORD: root # 数据库root账户的密码MYSQL_DATABASE: 2moons # 游戏数据库,要和上面的DB_NAME相同MYSQL_USER: 2moons # 额外创建的数据库账户,要和上面的DB_USER相同MYSQL_PASSWORD: 2moons #额外数据库账户的密码,要和上面的DB_PASSWORD相同networks: # 这里上一行其实有个数据库端口,但是用network可以让两个容器用容器名访问,用不着了,关了也安全点- 2moonsnetworks:2moons:

        虽然修改好了docker-compose.yml内容,但我们还不能直接启动,还有点问题需要解决。

        在项目文件夹内的install文件夹中,有个文件叫做install.sql的文件,这个文件定义了游戏安装过程中数据库内数据的创建,但是在Github上下载下来的版本中,缺失了很多字段的定义,如果直接安装的话,有些功能就会出现这样的错误。

        所以我们得先替换这个文件再进行安装,经过我在安装时的不断试错,我已经更新好了这个文件。

        下载地址:https://pan.baidu.com/s/1Nv-iVmifC-VssptIAp-PIw?pwd=5piv 

        下载好文件过后,我们把文件放到以下路径:/项目文件夹(我这里就是pkland-main)/install/,替换掉原有的install.sql。

        这一步完成后,我们就真的可以是用docker-compose启动项目了。我这里拉取过镜像,所以直接启动了,如果没有拉取过会自动下载,等待就好。

        等到启动后,直接访问地址,当时写的端口是哪个就访问哪个端口,我是用的默认的80,就不用写了。

        如果Docker启动顺利,你会看到这个界面。

        这个界面提示我们要去/include文件夹添加一个叫做ENABLE_INSTALL_TOOL的文件以开启安装模式,所以直接touch一个就行,名字一样就行不需要有内容。

        创建完成后刷新页面,就进入正式的安装流程了。如果这里不是中文,可以在右上角选一下。

        到了系统需求这一步,主要是看前几项有没有通过。

        后面一堆未找到和不可写,改一下权限就行,不过得先创建一个cache文件夹。

        修改好后,刷新页面,这个时候应该就都通过了。 

         

        来到数据库配置,填写数据库信息,有时候会和你写的不一样,改一下就行。

        到这一步,其实安装就完成了。

        继续,会让你登陆管理员后台,根据自己设置的信息登陆就行。

        管理员面板就是设置一些东西,点击右上角回到游戏就进入游戏界面了。

        一切完成,开玩!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29307.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringBoot】深入解析 Maven 的操作与配置

Maven 1.什么是Maven? Maven是一个项目管理工具,通过pom.xml文件的配置获取jar包,而不用手动去添加jar包; 2. 创建一个Maven项目 IDEA本身已经集成了Maven,我们可以直接使用,无需安装 以下截图的idea版本为&#xff…

Cursor + IDEA 双开极速交互

相信很多开发者朋友应该和我一样吧,都是Cursor和IDEA双开的开发模式:在Cursor中快速编写和生成代码,然后在IDEA中进行调试和优化 在这个双开模式的开发过程中,我就遇到一个说大不大说小不小的问题: 得在两个编辑器之间来回切换查…

HarmonyOS:如何将图片转为PixelMap并进行图片缓存策略

前言:在HarmonyOS项目开发中,我们使用Ark-Ts语言开发项目。我们有个功能是拍照,除了正常显示出来,并且上传服务器。我在开发过程中,遇到的问题是,如果离开这个页面再回到当前页面仍要显示图片,那…

ctf网络安全比赛有一张图片怎么查看

0102-JavaScript简介&&作用 02简介 JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 03作用 JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语…

搭建一个简单的node服务,模拟后端接口

目录 一、查看是否安装了node和npm 二、创建一个文件夹,用于放你的node服务代码 三、初始化一个package.json 四、安装 Express(快速搭建服务的框架) 五、创建serve.js 六、运行服务即可 七、测试接口 法一:使用 curl 法…

【五.LangChain技术与应用】【31.LangChain ReAct Agent:反应式智能代理的实现】

一、ReAct Agent是啥?为什么说它比「普通AI」聪明? 想象一下,你让ChatGPT查快递物流,它可能直接编个假单号糊弄你。但换成ReAct Agent,它会先推理(Reasoning)需要调用哪个接口,再行动(Action)查询真实数据——这就是ReAct的核心:让AI学会「动脑子」再动手。 举个真…

BUUCTF逆向刷题笔记(1-12)

easyre、内涵的软件、xor、不一样的flag: buuctf reverse部分题解(实时更新)_reverse 题解-CSDN博客 请见小库里的blog。 reverse1 查壳发现没有,而且是64位 粗略改一下部分函数名,看看主要逻辑。 第一个for循环暂…

OceanBase-obcp-v3考试资料梳理

集群架构 基本概念 集群: 集群由一个或多个Region组成,Region 由一个或多个Zone组成,Zone由一个或多个OBServer组成,每个OBServer里有若干个partition的Replica。 Region: 对应物理上的一个城市或地域,当OB集群由多个Region组成时, 数据库的数据和服务能力就具备地域…

【C++】双指针算法

我们还有更长的路要走,不过没关系,道路就是生活。 前言 这是我自己学习蓝桥杯算法的第一篇博客总结。后期我会继续把蓝桥杯算法学习笔记开源至博客上。 技巧 1. 双指针算法,但实际上是利用数组下标来充当指针,并不是直接使用指…

如何使用MyBatis进行多表查询

前言 在实际开发中,对数据库的操作通常会涉及多张表,MyBatis提供了关联映射,这些关联映射可以很好地处理表与表,对象与对象之间的的关联关系。 一对一查询 步骤: 先确定表的一对一关系确定好实体类,添加关…

江科大51单片机笔记【9】DS1302实时时钟(上)

一、DS1302介绍 DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。RTC(Real Time Clock):实时时钟,是一种集成电路…

【Python项目】基于深度学习的车辆特征分析系统

【Python项目】基于深度学习的车辆特征分析系统 技术简介:采用Python技术、MySQL数据库、卷积神经网络(CNN)等实现。 系统简介:该系统基于深度学习技术,特别是卷积神经网络(CNN),用…

汽车智能钥匙中PKE低频天线的作用

PKE(Passive Keyless Entry)即被动式无钥匙进入系统,汽车智能钥匙中PKE低频天线在现代汽车的智能功能和安全保障方面发挥着关键作用,以下是其具体作用: 信号交互与身份认证 低频信号接收:当车主靠近车辆时…

大模型AI平台DeepSeek 眼中的SQL2API平台:QuickAPI、dbapi 和 Magic API 介绍与对比

目录 1 QuickAPI 介绍 2 dbapi 介绍 3 Magic API 介绍 4 简单对比 5 总结 统一数据服务平台是一种低代码的方式,实现一般是通过SQL能直接生成数据API,同时能对产生的数据API进行全生命周期的管理,典型的SQL2API的实现模式。 以下是针对…

【CF】C. Tokitsukaze and Two Colorful Tapes+C. Where is the Pizza?

https://codeforces.com/contest/1677/problem/C https://codeforces.com/contest/1670/problem/C 两道很像的的题目,都和环有关 C. Tokitsukaze and Two Colorful Tapes 题目: 思路: 题意就是给定你两排颜色,要求在相同的颜色…

leetcode0020 - 有效的括号 easy

1 题目:有效的括号 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须…

基于提示驱动的潜在领域泛化的医学图像分类方法(Python实现代码和数据分析)

摘要 医学图像分析中的深度学习模型易受数据集伪影偏差、相机差异、成像设备差异等导致的分布偏移影响,导致在真实临床环境中诊断不可靠。领域泛化(Domain Generalization, DG)方法旨在通过多领域训练提升模型在未知领域的性能,但…

【STM32】玩转IIC之驱动MPU6050及姿态解算

目录 前言 一.MPU6050模块介绍 1.1MPU6050简介 1.2 MPU6050的引脚定义 1.3MPU6050寄存器解析 二.MPU6050驱动开发 2.1 配置寄存器 2.2对MPU6050寄存器进行读写 2.2.1 写入寄存器 2.2.2读取寄存器 2.3 初始化MPU6050 2.3.1 设置工作模式 2.3.2 配置采样率 2.3.3 启…

【C#】async与await介绍

1. 实例1 1.1 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApp1 {class Program{static void Main(string[] args){Method1();Method2();Console.ReadKey();}public static…

Gitlab配置personal access token

1.点击左上角个人账号 -> Preferences 2. 点击左边栏 Access Tokens 3. 点击Add new token ,输入token名称,勾选权限(注意截至日期 “Expiration date” 可不填) 4. 创建成功后,显示token信息,复制到本地…