Построение образа докера не прекращается из-за того, что сервер minecraft продолжает работать

Поэтому я уже несколько дней пытаюсь выучить докер и поставил перед собой первую цель. Я хочу запустить spigot-сервер внутри док-контейнера, а затем объединить его с сетью BungeeCord. Я столкнулся с проблемой. Мой dockerfile работает без проблем, но как только он достигает точки, где запускается сервер minecraft, образы перестают создаваться. Я думаю, это связано с тем, что сервер продолжает работать и не возвращает код 0, чтобы показать, что докер продолжает работать. Я не прав с моей идеей, и если нет, как я могу решить проблему?

Вот мой 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

Таким образом, сервер запускается, но докер никогда не завершает сборку. Надеюсь, я прояснил свою проблему.

Привет, Джоэл

1 ответ

Решение

Замени это последнее RUN с CMD,

RUN / ADD /.. используются для создания статической контейнерной среды, в которой вы хотите запустить ваше приложение. Все, что происходит до запуска реального приложения.

CMD а также ENTRYPOINT определить, что должно произойти внутри контейнера, как только вы docker run Это. Здесь запускается скрипт запуска / вызова программы.

Результат Dockerfile похож на компьютер, который выключен, но на жестком диске установлено все, включая скрипт, который автоматически запускает приложение. Включите, и все начнет работать.

PS: https://hub.docker.com/search/?q=spigot&page=1&isAutomated=0&isOfficial=0&starCount=0&pullCount=0 существует несколько существующих изображений

Другие вопросы по тегам