You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在非交互模式下使用官方PHP Docker镜像运行PocketMine-MP服务器

解决PocketMine-MP Docker镜像的交互模式问题

最优方案:自定义Dockerfile构建专属镜像

直接基于官方PHP CLI镜像构建你的PocketMine-MP服务器镜像,彻底替换默认的交互命令,完全控制启动流程。示例Dockerfile如下:

# 选择兼容PocketMine-MP的PHP CLI版本(比如PHP 8.1-cli,需匹配服务器要求的PHP版本)
FROM php:8.1-cli

# 设置容器内的工作目录
WORKDIR /pocketmine

# 安装运行PocketMine-MP所需的基础依赖
RUN apt-get update && apt-get install -y unzip \
    && rm -rf /var/lib/apt/lists/*

# 复制本地预先下载好的PocketMine-MP文件到镜像中
# (需提前从PocketMine-MP官方渠道下载好PocketMine-MP.phar和start.sh,放到Dockerfile同目录)
COPY PocketMine-MP.phar start.sh ./
RUN chmod +x start.sh

# 覆盖官方PHP镜像默认的交互CMD,直接启动服务器
CMD ["./start.sh"]

配套使用说明:

  1. 构建镜像:在Dockerfile所在目录执行docker build -t pocketmine-server .
  2. 启动容器(后台运行+端口映射+数据持久化):
    docker run -d \
      -p 19132:19132/udp \
      -v /本地主机的插件目录:/pocketmine/plugins \
      -v /本地主机的存档目录:/pocketmine/worlds \
      pocketmine-server
    
    • -d:后台运行容器,无需保持终端连接
    • -p 19132:19132/udp:映射Minecraft PE服务器的默认UDP端口
    • -v:挂载本地目录保存插件和存档,避免容器销毁后数据丢失

临时快速方案(无需构建镜像)

如果不想自定义镜像,可直接运行官方PHP镜像时指定启动命令,跳过默认的交互shell:

docker run -d \
  -p 19132:19132/udp \
  -v /本地主机的pocketmine目录:/pocketmine \
  php:8.1-cli php /pocketmine/PocketMine-MP.phar

提前将PocketMine-MP的phar文件放到本地挂载目录/本地主机的pocketmine目录即可,此命令直接用PHP二进制启动服务器,不会进入交互模式。

为什么这比单纯用detached模式更优?

  • 自定义镜像封装了完整的服务器环境,无需每次启动都输入复杂命令,可重复分发使用
  • 从根源上替换了官方镜像的交互CMD,不是仅靠后台运行“隐藏”交互提示,逻辑更清晰
  • 便于后续扩展:比如添加额外依赖、配置环境变量、自定义启动参数等

内容的提问来源于stack exchange,提问作者tamaarine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 10:55:50