Giter VIP home page Giter VIP logo

purpur-server's Introduction

Minecraft(Purpur) server via Docker

Данный контейнер позволяет вам запустить minecraft на ядре Purpur версии 1.20.1 или любой иной версии ядра, которой вы захотите, если она будет в репозитории Purpur. Данное решение разработанно для построение на его основе сервера с конфигурацией >=12 ГБ ОЗУ и 8 ядер/16 потоков.

Что надо для запуска

1. Docker:

Операционная система:

  • Linux: Docker поддерживает большинство распространенных дистрибутивов Linux, таких как Ubuntu, Debian, CentOS и другие.
  • Windows: Docker поддерживает Windows 10 Pro, Enterprise или Education (64-бит) с включенной подсистемой Windows для Linux (WSL 2).
  • macOS: Docker поддерживает macOS 10.13 и выше с установленным Docker Desktop.

Процессор:

64-битный процессор с виртуализацией включенной в BIOS/UEFI.

Память (RAM):

Рекомендуется не менее 12 ГБ оперативной памяти. Для минимального запуска/тестирования рекомендуется 1 ГБ оперативной памяти.

Хранилище:

Свободное место на диске для установки Docker и контейнеров. Рекомендуется не менее 12 гб дискового пространства.

Интернет-соединение:

Для загрузки образов контейнеров и других ресурсов.

2. Docker Compose (по желанию):

  • Установленный Docker: Docker Compose требует установленного Docker на хост-системе.

  • Python: Docker Compose написан на языке Python, поэтому требуется наличие Python на вашей системе.

  • Интернет-соединение: Для загрузки конфигураций и ресурсов, Docker Compose также требует интернет-соединения.

Как использовать

  • Установить Docker

  • Установить Docker Compose (по желанию)

  • Простой запуск через docker для версии minecraft 1.20.1

    docker run -d \
      --name purpur \
      --restart always \
      -v /path/to/purpur_data:/data:rw \
      -p 25565:25565/tcp \
      --interactive \
      --tty \
      towinok/purpurmain:latest
    • /path/to/purpur_data Заменить на локальный путь к папке хранения данных на хосте.
    • VERSION: "1.20.1" Заменить 1.20.1 на интересующую вас версию.
  • Простой запуск через docker-compose для версии minecraft 1.20.1

    version: "3"
    
    services:
      minecraft:
        image: "towinok/purpur-server:latest"
        restart: always
        container_name: "purpur"
        environment:
          VERSION: "1.20.1"
        volumes:
          - "/path/to/purpur_data:/data:rw"
        ports:
          - "25565:25565/tcp"
        stdin_open: true
        tty: true
    • docker-compose up Для запуска файла.
    • /path/to/purpur_data Заменить на локальный путь к папке хранения данных на хосте.
    • VERSION: "1.20.1" Заменить 1.20.1 на интересующуюинтересующую вас версию.

Доступные Environments

  • VERSION Версия Minecraft/PurpurMC сервера.
    • Default ARG: 1.20.1
  • MEMORYSIZE Размер выделенной памяти для Java процесса Minecraft сервера.
    • Default ARG: 1G
  • PUFFER_FLAGS Стандартный флаг который используется по умолчанию, не требует написания и повторного использования.
    • Default ARG --add-modules=jdk.incubator.vector. При желании можно поставить "" в значение и он работать перестанет, тогда Pufferfish не будет работать как надо.
  • JAVAFLAGS Дополнительные флаги Java (ZGC), используемые для настройки Java виртуальной машины.
    • Default ARG для 8 ядер 16 потоков и >=12G GB ОЗУ:
      -Djava.awt.headless=true -Dterminal.jline=false -Dterminal.ansi=true -XX:+UseZGC -XX:MaxGCPauseMillis=16 -XX:ActiveProcessorCount=8 -XX:+UseNUMA -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled XX:+PerfDisableSharedMem -XX:InitiatingHeapOccupancyPercent=20 -Dcom.mojang.eula.agree=true
    • ПРЕДУПРЕЖДЕНИЕ! Если у вас меньше 12 гб, то прошу использовать флаги от Aikar
  • ADD_FLAGS Дополнительные флаги и параметры для запуска Minecraft/PurpurMC сервера.
    • Dedault ARG
      --nojline -C ./config/commands.yml -S ./config/spigot.yml -b ./config/bukkit.yml -c ./config/server.properties --pufferfish-settings ./config/pufferfish.yml --purpur-settings ./config/purpur.yml --paper-settings-directory ./config/paper/  -d "yyyy-MM-dd HH:mm:ss" --world-dir ./worlds/
      • --world-dir ./worlds/' Папка с мирами по умолчанию.
      • --paper-settings-directory ./config/paper/ ./config => paper/ => конфигураций Paper
      • --purpur-settings ./config/purpur.yml ./config => конфигураций Purpur
      • ./config/pufferfish.yml --purpur-settings ./config => конфигураций Pufferfish
      • -C ./config/commands.yml ./config => конфигурационный файл для создания алиасов команд (не рекомендуется к настройке).
      • -S ./config/spigot.yml ./config => Конфигурация Spigot
      • -b ./config/bukkit.yml ./config => Конфигурация Bukkit

Выполнение

Если всё выполнилось правильно то появится отчёт об исполнении

"------------------------------------------------------------------"
"Purpur version: ${PURPUR_VERSION}-${LATEST_BUILD}"
"------------------------------------------------------------------"

"Purpur server downloaded successfully."
  • {PURPUR_VERSION} Версия Minecraft которую вы указали.
  • {LATEST_BUILD} Последняя версия Purpur для данной версии майнкрафт на момент запроса. Если при скачивании не совпадут хэш-суммы "Purpur server downloaded with error", то файл будет скачиваться до тех пор пока не будет совпадения ключей. Стоит отметить, что если версия не валидна, то и ошибка так же будет связанна с ключом, так как по факту нету файла удовлетворяющим требованию.

В случае если контейнер умрёт с флагом --restart always или restart: always , то контейнер перезапустится автоматически.

Подключение к контейнеру

docker exec -it CONTAINER_ID /bin/sh
docker-compose exec SERVICE_NAME /bin/sh

Для получения ID и NAME

docker ps

Прикладной материал

  • Основные команды для пользования Docker [EN]
  • Базовое использование Docker-compose [EN]
  • Сравнение и полезная информация о флагах для minecraft [EN]
  • Почему Aikar's флаг хороши [EN]
  • Кратко об ZGC [EN]
  • OpenJDK wiki ZGC [EN]

Что в разработке?

  • Алиасы для docker
  • Выбор из ядер для скачивания
    • Vanila
    • Paper
    • Purpur

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.