Построение образа докера не прекращается из-за того, что сервер 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 существует несколько существующих изображений