部署 Phira 多人游戏服务器
介绍
作为一个开源的音游,其提供了多人联机的功能,玩家可自行部署官方的 TeamFlos/phira-mp
作为联机服务器。
phiria-mp 采用 Rust 编写。开发者并没有在 GitHub 上提供预编译的可执行文件,因此若要自行部署,需要安装 Rust 环境,并使用 Cargo 进行编译。
为了保持生产环境的纯洁不被 Rust 污染,我下定决心为其创建一个容器镜像,即置于 Dokcer 环境中运行。
直接使用实现
我创建了这样一个 Dockerfile
文件,将构建和运行分成了两个阶段,配合 Alpine 基础镜像以尽可能减少镜像体积。
软件包镜像源
其中,第 8 行被高亮标出,我在这一步为 Alpine 的包管理器更换了下载源(上海交通大学)。根据需要,可以更改或删除这一行。
使用的端口
在其他的一些教程中并没有提到此程序使用的是什么端口,在此我进行说明。
在此文章被编写时,此程序使用了 12346/TCP
端口。 在此之前曾经使用过 12345/TCP
端口,但目前已被废除。
1 | FROM rust:alpine as build |
在实际使用时,需要先将储存库克隆至本地,在储存库的根目录下创建这个文件,随后再进行构建操作。
1 | git clone https://github.com/TeamFlos/phira-mp.git |
预构建镜像
为了方便使用,我提供了预构建的镜像,并将其发布在了腾讯云和阿里云的镜像仓库中。
以下均为多架构镜像,支持 amd64 和 arm64 架构。
镜像仓库 | 镜像名称 |
---|---|
阿里云 上海 🇨🇳 | registry.cn-shanghai.aliyuncs.com/serinanya/phira-mp:latest |
阿里云 香港 🇨🇳🇭🇰 | registry.cn-hongkong.aliyuncs.com/serinanya/phira-mp:latest |
阿里云 法兰克福 🇩🇪 | registry.eu-central-1.aliyuncs.com/serinanya/phira-mp:latest |
腾讯云 广州 🇨🇳 | ccr.ccs.tencentyun.com/serinanya/phira-mp:latest |
腾讯云 香港 🇨🇳🇭🇰 | hkccr.ccs.tencentyun.com/serinanya/phira-mp:latest |
运行
在此我仅作简单的运行操作。
1 | docker run --name phira-mp --restart always -it -d \ |
在 Phira 的设置界面的 多人游戏服务器 填写服务器的 IP 和端口:phira.example.com:12346
运行后并不会立即产生日志,当用户在 Phira 中连接时才会出现日志。
1 | 2023-11-04T06:44:45.479488Z INFO phira_mp_server::server: received connections from 112.65.0.0:56464 (29f5afb9-c9c0-4b88-9fa0-c43687000000), version: 1 |
至此,服务器部署完成。
- 标题: 部署 Phira 多人游戏服务器
- 作者: SerinaNya
- 创建于 : 2024-05-13 21:49:42
- 更新于 : 2024-05-13 21:49:42
- 链接: https://serinanya.cn/2024/phira-multi-player/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。