部署 Phira 多人游戏服务器

SerinaNya

介绍

Phira 是一个 Phigros 的二创社区。

作为一个开源的音游,其提供了多人联机的功能,玩家可自行部署官方的 TeamFlos/phira-mp 作为联机服务器。

phiria-mp 采用 Rust 编写。开发者并没有在 GitHub 上提供预编译的可执行文件,因此若要自行部署,需要安装 Rust 环境,并使用 Cargo 进行编译。

为了保持生产环境的纯洁不被 Rust 污染,我下定决心为其创建一个容器镜像,即置于 Dokcer 环境中运行。

直接使用

实现

我创建了这样一个 Dockerfile 文件,将构建和运行分成了两个阶段,配合 Alpine 基础镜像以尽可能减少镜像体积。

软件包镜像源

其中,第 8 行被高亮标出,我在这一步为 Alpine 的包管理器更换了下载源(上海交通大学)。根据需要,可以更改或删除这一行。

使用的端口

在其他的一些教程中并没有提到此程序使用的是什么端口,在此我进行说明。

在此文章被编写时,此程序使用了 12346/TCP端口。 在此之前曾经使用过 12345/TCP 端口,但目前已被废除。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
FROM rust:alpine as build

LABEL org.opencontainers.image.authors="jin+gt6z0s2z@serinanya.cn"

COPY . /build
WORKDIR /build

RUN sed -i 's@dl-cdn.alpinelinux.org@mirrors.sjtug.sjtu.edu.cn@g' /etc/apk/repositories
RUN apk update && \
apk add musl-dev pkgconfig openssl-dev openssl-libs-static
RUN cargo build --release -p phira-mp-server


FROM alpine:latest

COPY --from=build /build/target/release/phira-mp-server /app/phira-mp-server

WORKDIR /app
EXPOSE 12346
ENV RUST_LOG=info
CMD [ "/app/phira-mp-server" ]

在实际使用时,需要先将储存库克隆至本地,在储存库的根目录下创建这个文件,随后再进行构建操作。

1
2
3
4
5
6
7
git clone https://github.com/TeamFlos/phira-mp.git
cd phira-mp

vim Dockerfile
# ...

docker build -t phira-mp:latest .

预构建镜像

为了方便使用,我提供了预构建的镜像,并将其发布在了腾讯云和阿里云的镜像仓库中。

以下均为多架构镜像,支持 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
2
3
4
docker run --name phira-mp --restart always -it -d \
-e TZ=Asia/Shanghai \
-p 12346:12346 \
registry.cn-shanghai.aliyuncs.com/serinanya/phira-mp:latest

在 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 进行许可。
目录
部署 Phira 多人游戏服务器