Установка AzerothCore с помощью Docker — это упрощенная процедура, которая имеет несколько преимуществ:
Единственные требования - это
Новые операционные системы [рекомендуется]:
Вы должны увидеть аналогичный результат:
Примечание для пользователей Windows: вы можете использовать git-bash (оболочку, включенную в git) в качестве терминала.
Клонируйте репозиторий AzerothCore
Вам необходимо клонировать репозиторий AzerothCore (или использовать собственный форк):
Теперь перейдите в основной каталог с помощью
Установка
Внутри вашего терминала (если вы используете Windows, используйте git bash), выполните следующие команды внутри папки azerothcore-wotlk
ПРИМЕЧАНИЕ: в следующей процедуре используется панель управления acore.sh, однако эти команды являются сокращением команд docker-compose. вы можете проверить команды docker-compose, используемые в фоновом режиме, запустив
1) Загрузите данные клиента:
ПРИМЕЧАНИЕ. Эта команда должна выполняться только при первой установке и при наличии новой версии клиентских данных.
2) Компиляция AzerothCore
Он будет создавать образы докеров, компилировать ядро и автоматически импортировать необходимые файлы SQL! Это может занять некоторое время. А пока вы можете пойти и выпить бокал вина ?
ПРИМЕЧАНИЕ Для разработчиков: если вы работаете с кодом и вам нужен быстрый способ скомпилировать свои двоичные файлы(бинарники), приведенная выше команда может быть немного излишней для вас, потому что вам, вероятно, не нужно перестраивать изображения или импортировать SQL, если вы их не меняли. Поэтому мы предлагаем вместо этого использовать одно из следующих решений:
Поздравляю! Теперь у вас есть работающий сервер Azerothcore! Переходите к следующему шагу, чтобы создать учетную запись
Если вам нужно запустить это в фоновом режиме, вы можете использовать следующую команду для запуска автономного режима docker-compose:
4) Доступ к консоли мирового сервера
Откройте новый терминал и выполните следующую команду
Если вы получили сообщение об ошибке, устройство ввода не является телетайпом. Если вы используете mintty, попробуйте поставить перед командой префикс winpty, вы можете запустить следующую команду
Далее найдите имя мирового сервера
Затем прикрепите имя мирового сервера с помощью winpty
Эта команда автоматически подключит ваш терминал к консоли мирового сервера. Теперь вы можете запустить команду
5) Доступ к базе данных и обновление realmlist
Для доступа к базе данных MySQL мы рекомендуем такие клиенты, как
Если ваш сервер не находится в той же сети, что и ваш клиент, вы можете обновить адрес
Как правильно обновлять AzerothCore для применения последних правок
Прежде всего, вам нужно использовать инструмент
Затем вы можете просто запустить следующую команду:
ПРИМЕЧАНИЕ. AC не так часто обновляет данные клиента, но когда это произойдет, вы можете выполнить следующую команду:
Как запустить мировой сервер с GDB
Запуск сервера с GDB позволяет создавать crashdump в случае сбоя сервера. Данный файл будет полезен для разрботчиков, чтобы понять, в чём причина падения сервера, и, возможно, исправить это.
Имейте в виду, что вы должны скомпилировать ядро с одним из следующих типов компиляции: Debug или RelWithDebInfo, иначе GDB не будет работать должным образом.
Чтобы включить GDB, необходимо выполнить следующие шаги:
Как пользоваться dev-контейнером
В docker-compose вы можете найти службу
Dev-контейнер позволяет использовать Docker-контейнер в качестве полнофункциональной среды разработки. Папка .devcontainer в нашем проекте содержит файлы, которые сообщают VS Code, как получить доступ (или создать) контейнер разработки со всеми необходимыми инструментами. Этот контейнер будет запускать AzerothCore со всем программным обеспечением и конфигурациями, необходимыми для работы с нашей кодовой базой и отладки сервера.
Внутри репозитория azerothcore есть предварительно настроенный
Не забывайте, что вам необходимо установить расширение
Как производить отладку кода с помощью dev-контейнера
ПРИМЕЧАНИЕ: имейте в виду, что вы должны компилировать свой код в режиме отладки, иначе отладчик не будет работать должным образом.
Оказавшись внутри dev-контейнера VSCode, вы можете перейти к сеансу отладки и использовать
Он запустит мировой сервер в режиме отладки, а затем вы можете начать размещать контрольные точки в своем коде для его отладки.
Для получения дополнительной информации о том, как отлаживать в VSCode, вы можете ознакомиться с
Как создать второй realm с помощью docker-compose
Чтобы создать второй realm, мы предлагаем вам взглянуть на пример, доступный в репозитории
Добавление модулей
Чтобы добавить модуль, просто поместите каталог модуля в каталог
После добавления модуля вам нужно будет пересобрать AC:
Если добавленный модуль использует файлы конфигурации, вам придется поместить их в каталог
После ребилда вы можете снова перезапустить контейнеры.
Использование памяти (RAM)
Общий объем оперативной памяти при запуске всех док-контейнеров AzerothCore составляет менее 2 ГБ, при отсутствии игроков в сети.
Это пример нового пустого сервера AzerothCore, работающего с Docker на macOS:
При использовании в системе GNU/Linux объем памяти, используемой Docker, еще меньше.
Докер контейнеры против виртуальных машин
Использование Docker будет иметь те же преимущества, что и использование виртуальных машин, но с гораздо меньшими накладными расходами:
AzerothCore работающий на macOS с Docker
AzerothCore работающий на Windows 10 с Docker
FAQ
Где на моём сервере папки с конфигурацией и логами?
По умолчанию они расположены в
Как я могу изменить конфигурацию контейнеров докера?
Вы можете скопировать файл
В файле
Как я могу запускать, останавливать, создавать и уничтожать свои контейнеры?
Предупреждение. После удаления файлов базы данных их невозможно будет восстановить, если у вас нет резервной копии.
Чтобы удалить файлы базы данных, вам необходимо сначала убедиться, что ваши контейнеры остановлены и удалены, набрав:
После остановки и удаления контейнеров вы можете приступить к удалению тома, набрав:
Примечание. Если вы изменили имя папки с используемого по умолчанию
Оптимизация macOS (для сервера разработки)
Как известно, osxfs имеет
Это скопирует все внешние источники в постоянный том внутри докера, что означает, что в качестве недостатка изменения внутри контейнера не будут отражаться снаружи (хост) и наоборот.
ПРИМЕЧАНИЕ. Если вы не экспериментируете с какими-либо конкретными проблемами с производительностью ввода-вывода, AC предлагает НЕ использовать эту конфигурацию.
Как я могу запускать команды в консоли мирового сервера?
Помимо использования команды
Прежде всего, введите
Чтобы прикрепить: откройте новую вкладку терминала и введите
Примечание для пользователей Windows: используя git bash в Windows, вы должны добавить к этой команде префикс
Чтобы открепить: нажмите
НЕ пытайтесь открепить с помощью
- Это очень легко! Докер сделает за вас всю грязную работу.
- Это можно сделать на всех операционных системах, где доступен Docker (включая Windows, GNU/Linux, macOS).
- Вам не нужно устанавливать много зависимостей (забудьте о Visual Studio, cmake, mysql и т. Д. Они НЕ требуются)
- Забудьте об ошибках, связанных с платформой. При использовании Docker AzerothCore всегда будет работать в режиме Linux.
- Есть много других
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация.
Единственные требования - это
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
и DockerНовые операционные системы [рекомендуется]:
- Для GNU/Linux установите
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или РегистрацияиВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- Для macOS 10.12+ Sierra и более новой версии установите
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация.
- Для Windows 10 установите
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- Для macOS старше 10.11 El Capitan и старше установите
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- Для Windows 7/8 / 8.1 установите
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
docker
и docker-compose
, набрав в терминале:
Код:
docker --version
docker-compose --version
Код:
Docker version 20.10.5, build 55c4c88
docker-compose version 1.28.2, build 67630359
Клонируйте репозиторий AzerothCore
Вам необходимо клонировать репозиторий AzerothCore (или использовать собственный форк):
Код:
git clone https://github.com/azerothcore/azerothcore-wotlk.git
cd azerothcore-wotlk
. Все команды нужно будет запускать внутри этой папки.Установка
Внутри вашего терминала (если вы используете Windows, используйте git bash), выполните следующие команды внутри папки azerothcore-wotlk
ПРИМЕЧАНИЕ: в следующей процедуре используется панель управления acore.sh, однако эти команды являются сокращением команд docker-compose. вы можете проверить команды docker-compose, используемые в фоновом режиме, запустив
./acore.sh docker --help
и прочитать описание каждой команды1) Загрузите данные клиента:
Код:
./acore.sh docker client-data
2) Компиляция AzerothCore
Код:
./acore.sh docker build
ПРИМЕЧАНИЕ Для разработчиков: если вы работаете с кодом и вам нужен быстрый способ скомпилировать свои двоичные файлы(бинарники), приведенная выше команда может быть немного излишней для вас, потому что вам, вероятно, не нужно перестраивать изображения или импортировать SQL, если вы их не меняли. Поэтому мы предлагаем вместо этого использовать одно из следующих решений:
./acore.sh docker build:compiler
он только создает образ разработчика и компилирует исходники без импорта sql../acore.sh docker dev:build
она похожа на предыдущую команду, но использует dev-контейнер, который использует тома вместо контейнера. В некоторых конфигурациях это может быть быстрее.
Код:
./acore.sh docker start:app
Поздравляю! Теперь у вас есть работающий сервер Azerothcore! Переходите к следующему шагу, чтобы создать учетную запись
Если вам нужно запустить это в фоновом режиме, вы можете использовать следующую команду для запуска автономного режима docker-compose:
Код:
./acore.sh docker start:app:d
4) Доступ к консоли мирового сервера
Откройте новый терминал и выполните следующую команду
Код:
./acore.sh docker attach ac-worldserver
Код:
docker-compose ps
Код:
azerothcore-wotlk_ac-authserver_1 ./acore.sh run-authserver Up 0.0.0.0:3724->3724/tcp,:::3724->3724/tcp
azerothcore-wotlk_ac-database_1 docker-entrypoint.sh mysqld Up (healthy) 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp, 33060/tcp
azerothcore-wotlk_ac-worldserver_1 ./acore.sh run-worldserver Up 0.0.0.0:7878->7878/tcp,:::7878->7878/tcp, 0.0.0.0:8085->8085/tcp,:::8085->8085/tcp
Затем прикрепите имя мирового сервера с помощью winpty
Код:
winpty docker attach azerothcore-wotlk_ac-worldserver_1
Эта команда автоматически подключит ваш терминал к консоли мирового сервера. Теперь вы можете запустить команду
account create <user> <password>
, чтобы создать свою первую внутриигровую учетную запись.5) Доступ к базе данных и обновление realmlist
Для доступа к базе данных MySQL мы рекомендуем такие клиенты, как
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
(для Windows / Linux + Wine) или
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
(для macOS). Используйте root
как пользователя и 127.0.0.1
как хост по умолчанию. Паролем по умолчанию для пользователя root БД будет password
.Если ваш сервер не находится в той же сети, что и ваш клиент, вы можете обновить адрес
realmlist
в базе данных acore_auth
с помощью публичного IP-адреса вашего сервера:
SQL:
USE acore_auth;
SELECT * FROM realmlist;
UPDATE realmlist SET address='<ПУБЛИЧНЫЙ АЙПИ-АДРЕС ВАШЕГО СЕРВЕРА>';
Как правильно обновлять AzerothCore для применения последних правок
Прежде всего, вам нужно использовать инструмент
git
для обновления вашего репозитория, выполнив следующую команду:git pull origin master
— это загрузит последние коммиты из репозитория azerothcoreЗатем вы можете просто запустить следующую команду:
./acore.sh docker build
— это для ребилда и создания новых бинарников. Более того, он также будет импортировать последние изменения базы данных.ПРИМЕЧАНИЕ. AC не так часто обновляет данные клиента, но когда это произойдет, вы можете выполнить следующую команду:
./acore.sh client-data
— это загрузит новую версию данных клиента, если доступна новая версияКак запустить мировой сервер с GDB
Запуск сервера с GDB позволяет создавать crashdump в случае сбоя сервера. Данный файл будет полезен для разрботчиков, чтобы понять, в чём причина падения сервера, и, возможно, исправить это.
Имейте в виду, что вы должны скомпилировать ядро с одним из следующих типов компиляции: Debug или RelWithDebInfo, иначе GDB не будет работать должным образом.
Чтобы включить GDB, необходимо выполнить следующие шаги:
- Создайте файл
config.sh
в каталоге/conf/
репозитория azerothcore-wotlk. - Добавьте эту конфигурацию внутрь:
AC_RESTARTER_WITHGDB = true
. Он настроит перезапуск, используемый службами докеров, для прямого использования GDB вместо бинарников. - Перезагрузите контейнеры и все готово!
gdb.txt
) в папке /env/docker
.Как пользоваться dev-контейнером
В docker-compose вы можете найти службу
ac-dev-server
. Эта служба используется для операций сборки и db, но вы также можете использовать ее для разработки с расширением
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
.Dev-контейнер позволяет использовать Docker-контейнер в качестве полнофункциональной среды разработки. Папка .devcontainer в нашем проекте содержит файлы, которые сообщают VS Code, как получить доступ (или создать) контейнер разработки со всеми необходимыми инструментами. Этот контейнер будет запускать AzerothCore со всем программным обеспечением и конфигурациями, необходимыми для работы с нашей кодовой базой и отладки сервера.
Внутри репозитория azerothcore есть предварительно настроенный
devcontainer.json
, который можно открыть с помощью VSCode command palette. Чтобы настроить Dev-Container, выполните следующие действия:- Скопируйте файл
docker-compose.override.yml
из папки /conf/dist в корневой каталог репозитория azerothcore. (необходимо, покаВы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрацияне будет решено) -
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- Установите расширение
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
- Откройте папку azerothcore внутри VSCode
- Откройте VSCode
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация(Ctrl+Shift+P) и запустите:
>Remote-Containers: Reopen in Container
Не забывайте, что вам необходимо установить расширение
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
в IDE
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
.Как производить отладку кода с помощью dev-контейнера
ПРИМЕЧАНИЕ: имейте в виду, что вы должны компилировать свой код в режиме отладки, иначе отладчик не будет работать должным образом.
Оказавшись внутри dev-контейнера VSCode, вы можете перейти к сеансу отладки и использовать
Linux/Docker debug
действие, как вы можете видеть на этом изображении:Он запустит мировой сервер в режиме отладки, а затем вы можете начать размещать контрольные точки в своем коде для его отладки.
Для получения дополнительной информации о том, как отлаживать в VSCode, вы можете ознакомиться с
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
.Как создать второй realm с помощью docker-compose
Чтобы создать второй realm, мы предлагаем вам взглянуть на пример, доступный в репозитории
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
.Добавление модулей
Чтобы добавить модуль, просто поместите каталог модуля в каталог
/azerothcore-wotlk/modules
.После добавления модуля вам нужно будет пересобрать AC:
Код:
./acore.sh docker build
Если добавленный модуль использует файлы конфигурации, вам придется поместить их в каталог
azerothcore-wotlk/env/docker/etc/modules
. Если этот каталог модулей не существует, вам придется вручную создать его самостоятельно.После ребилда вы можете снова перезапустить контейнеры.
Использование памяти (RAM)
Общий объем оперативной памяти при запуске всех док-контейнеров AzerothCore составляет менее 2 ГБ, при отсутствии игроков в сети.
Это пример нового пустого сервера AzerothCore, работающего с Docker на macOS:
При использовании в системе GNU/Linux объем памяти, используемой Docker, еще меньше.
Докер контейнеры против виртуальных машин
Использование Docker будет иметь те же преимущества, что и использование виртуальных машин, но с гораздо меньшими накладными расходами:
AzerothCore работающий на macOS с Docker
AzerothCore работающий на Windows 10 с Docker
FAQ
Где на моём сервере папки с конфигурацией и логами?
По умолчанию они расположены в
env/docker/authserver/
и env/docker/worldserver/
.Как я могу изменить конфигурацию контейнеров докера?
Вы можете скопировать файл
/conf/dist/.env.docker
в .env
и поместить его в корневую папку проекта, а затем отредактировать его в соответствии с вашими потребностями.В файле
.env
вы можете настроить:- Расположение
data
,etc
иlogs
папок. - Открытые порты.
- Пароль от root пользователя MySQL.
docker-compose up
автоматически найдет .env
с вашими пользовательскими настройками.Как я могу запускать, останавливать, создавать и уничтожать свои контейнеры?
docker-compose start --profile app start
запустит ваши существующие контейнеры приложений в автономном режиме.docker-compose stop
остановит ваши контейнеры, но не удалит их.docker-compose --profile app up
собирает, перезапускает и стартует службы вашего приложения.docker-compose down
Команда остановит ваши контейнеры, но также удалит остановленные контейнеры, а также все созданные сети.docker-compose down --rmi all -v
команда остановит и удалит ВСЕ.
Предупреждение. После удаления файлов базы данных их невозможно будет восстановить, если у вас нет резервной копии.
Чтобы удалить файлы базы данных, вам необходимо сначала убедиться, что ваши контейнеры остановлены и удалены, набрав:
docker-compose down
.После остановки и удаления контейнеров вы можете приступить к удалению тома, набрав:
docker volume rm azerothcore-wotlk_ac-database
Примечание. Если вы изменили имя папки с используемого по умолчанию
azerothcore-wotlk
, имя тома будет немного другим. Чтобы найти новое имя тома, вы можете использовать команду docker volume ls
. Том должен быть помечен чем-то вроде xxxx_ac-database
.Оптимизация macOS (для сервера разработки)
Как известно, osxfs имеет
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
, поэтому AC оптимизировали файл docker-compose для osxfs, используя тома и стратегию «делегирования». Однако ФС также представили экспериментальную функцию, позволяющую использовать именованные тома вместо связанных. Вы можете использовать эту функцию, установив эту переменную среды в вашем файле .env
:
Код:
DOCKER_EXTENDS_BIND=abstract-no-bind
Это скопирует все внешние источники в постоянный том внутри докера, что означает, что в качестве недостатка изменения внутри контейнера не будут отражаться снаружи (хост) и наоборот.
ПРИМЕЧАНИЕ. Если вы не экспериментируете с какими-либо конкретными проблемами с производительностью ввода-вывода, AC предлагает НЕ использовать эту конфигурацию.
Как я могу запускать команды в консоли мирового сервера?
Помимо использования команды
./acore.sh docker attach
, вы можете использовать ручной подход, если у вас возникли какие-либо проблемы.Прежде всего, введите
docker-compose ps
, чтобы узнать имя вашего контейнера мирового сервера, это должно быть что-то вроде azerothcore-wotlk_ac-worldserver_1
Чтобы прикрепить: откройте новую вкладку терминала и введите
docker attach azerothcore-wotlk_ac-worldserver_1
.Примечание для пользователей Windows: используя git bash в Windows, вы должны добавить к этой команде префикс
winpty
. Пример:
Код:
winpty docker attach azerothcore-wotlk_ac-worldserver_1
Чтобы открепить: нажмите
ctr+p
и ctrl+q
.НЕ пытайтесь открепить с помощью
ctrl+c
, иначе вы убьете процесс мирового сервера!