Search code examples
databasedockerdocker-composedocker-containerazerothcore

How to update azerothcore-wotlk docker container


I'm running Azerothcore-WOTLK in docker following the official installation guide for AzerothCore using Docker containers and I'm wondering how I can update the Azerothcore build and how to apply database updates without losing character data.

To update the docker container I guess I should pull the latest code from Github and rebuild the containers using docker-compose down and docker-compose up, but how do I make sure my character data survives the update?

To update the database I'm assuming that I should apply all the SQL updates found here, but is the db_assembler.sh usable for the docker container and if it is, how do I use it? What is the procedure for backing up important parts of the database before any update?


Solution

  • UPDATE: since 22 April 2021 the Docker system in AC has been reworked and there is a new (simplified) procedure to install and update it available at the official website.

    https://www.azerothcore.org/wiki/Install-with-Docker#how-to-keep-your-azerothcore-updated-with-the-latest-changes


    LEGACY ANSWER

    1. Stop your worldserver and authserver containers using docker-compose stop CONTAINER_NAME.

    For example:

    docker-compose stop azerothcore-wotlk_ac-worldserver_1

    To see the names of your containers use docker ps.

    As the FAQ mentions, do NOT use docker-compose down which destroyes the containers instead of just stopping them.

    1. Update your sources to latest version (i.e. git pull)

    2. Rebuild the sources using ./bin/acore-docker-build (now replaced by ./acore.sh docker build)

    3. Update your DB as you would normally do.

    4. Start your containers again with docker-compose start

    More specifically, about the question related to the DB:

    but is the db_assembler.sh usable for the docker container and if it is, how do I use it? What is the procedure for backing up important parts of the database before any update?

    there is no difference with the traditional setup. When you use Docker, your DB is running inside a docker container that holds the MySQL-server. So you can access, update, backup, etc... your database exactly the same way you would do if you installed MySQL-server directly on your host machine.

    To access it, as the official guide says:

    Use root as user and 127.0.0.1 as default host. The default password of the root DB user will be "password".