由于 Minecraft 服务器继续 运行,构建 docker 图像不会停止

Building a docker image doesnt stop because of minecraft server continuing to run

所以这几天我一直在努力学习docker,并为我设定了第一个目标。 我想在 docker 容器中 运行 一个 spigot 服务器,然后在路上将其与 BungeeCord 网络结合起来。 我有 运行 个问题。 我的 docker 文件 运行 没有问题,但是一旦它到达启动 minecraft 服务器的位置,图像就会停止构建。 我认为这是由于服务器继续 运行 而不是返回代码 0 以显示 docker 继续 运行ning。 我的想法有错吗?如果没有,我该如何解决这个问题?

这是我的 Dockerfile:

FROM ubuntu:14.04

RUN apt-get update
RUN apt-get install openjdk-7-jre icedtea-7-plugin -y
RUN apt-get install wget -y
RUN mkdir mc_server && cd mc_server/
RUN wget http://getspigot.org/spigot18/spigot_server.jar
RUN java -Xms1536m -Xmx1536m -Dcom.mojang.eula.agree=true -jar spigot_server.jar nogui

服务器以这种方式启动,但 docker 永远不会完成构建。 我希望我把我的问题说清楚了。

您好, 乔尔

将最后的 RUN 替换为 CMD

RUN / ADD / .. 用于构建您想要 运行 您的应用程序的静态容器环境。在 运行ning 之前发生的一切实际应用。

CMDENTRYPOINT 定义一旦 docker run 容器内应该发生什么。这是程序的启动脚本/调用所在的位置。

Dockerfile 的结果类似于关闭但硬盘驱动器上安装了所有内容的计算机,包括自动启动应用程序的脚本。打开它,一切开始 运行.

PS: https://hub.docker.com/search/?q=spigot&page=1&isAutomated=0&isOfficial=0&starCount=0&pullCount=0 有几个现有图像