Docker 部署 Phira 多人游戏服务器

介绍

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

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

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

教程请直接浏览🪂「运行」部分。

实现

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

软件包镜像源

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

使用的端口

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

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

FROM rust:alpine as build

LABEL org.opencontainers.image.authors="i@xiaojin233.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" ]

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

git clone https://github.com/TeamFlos/phira-mp.git
cd phira-mp

vim Dockerfile
# ...

docker build -t jinzhijie/phira-mp:latest .

预构建镜像

为了方便使用,我提供了预构建的镜像,并将其发布在了 Docker Hub 和 Aliyun ACR 上。

Docker Hub: docker.io/jinzhijie/phira-mp:012f2c6
(https://hub.docker.com/r/jinzhijie/phira-mp)

Aliyun ACR: registry.cn-shanghai.aliyuncs.com/xiaojin233/phira-mp:012f2c6

由于 rust #89626,我在构建 arm64 的镜像时遇到了困难,所以在此我只提供了 amd64 的镜像。

运行

在此我仅作简单的运行操作。

docker run --name phira-mp --restart always -it -d -p 12346:12346 registry.cn-shanghai.aliyuncs.com/xiaojin233/phira-mp:012f2c6

在 Phira 的设置界面的 多人游戏服务器 填写服务器的 IP 和端口。

设置服务器地址

连接服务器

运行后并不会立即产生日志,当用户在 Phira 中连接时才会出现日志。

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

至此,服务器部署完成。可以愉快地和朋友游玩啦 ❤

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以按照以下步骤使用 Docker 部署您的 Minecraft 服务器: 1. 首先,确保您的服务器上已经安装了 Docker。如果没有,请根据您的操作系统安装 Docker。 2. 创建一个文件夹,用于保存 Minecraft 服务器的数据。例如,您可以创建一个名为 "minecraft_data" 的文件夹。 3. 在该文件夹中创建一个文本文件,命名为 "eula.txt",并将以下内容复制到文件中: ``` eula=true ``` 这是为了接受 Minecraft EULA(最终用户许可协议)。 4. 创建一个名为 "docker-compose.yml" 的文件,并将以下内容复制到文件中: ```yaml version: '3.8' services: minecraft-server: image: itzg/minecraft-server ports: - "25565:25565" volumes: - ./minecraft_data:/data restart: always ``` 该配置文件使用了 itzg/minecraft-server 镜像,并将容器的 25565 端口映射到主机的 25565 端口。同时,将主机上的 "minecraft_data" 文件夹挂载到容器的 "/data" 目录,以便保存 Minecraft 服务器的数据。 5. 保存并关闭文件。 6. 在命令行中,导航到包含上述文件的文件夹。 7. 运行以下命令启动 Minecraft 服务器容器: ``` docker-compose up -d ``` 此命令将会下载并启动 Minecraft 服务器容器。请耐心等待一段时间,直到容器成功启动。 现在,您的 Minecraft 服务器已经部署Docker 容器中。您可以使用 Minecraft 客户端连接到服务器的 IP 地址,并开始游戏。 请注意,如果您需要对服务器进行更多的自定义配置,您可以编辑 "docker-compose.yml" 文件中的其他选项,例如最大玩家数量、服务器版本等。详细信息可以参考 itzg/minecraft-server 镜像的文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值