Mike Delago 888a718cf3 Fix configs in docker builds (#14747)
<!-- First of all, THANK YOU for your contribution. -->

## Changes Proposed
- This fixes an issue where the .conf files aren't properly generated for the docker build
  - With this issue, the dbimport service in the docker compose file would fail to start due to insufficient config. 
  - related to PR #14707
- create a ".user" file extension for custom configs in `env/docker/etc/`
- Layers the ".dockerdist" file and the ".user" file over the ".dist" file (in that order), and then copies the ".dist" file to the base ".conf" file
- Docker specific config changes go in the ".dockerdist" file and should still be committed to the repo
- User specific config changes go in ".user" file and should not be committed to the repo
- If the ".dist" file and the base ".conf" file are different, the ".conf" will be backed up before the ".dist" file is copied into it

## Issues Addressed:
<!-- If your fix has a relating issue, link it below -->
- There isn't a specific issue, however this was reported and discussed in discord over the course of yesterday and today

## SOURCE:
<!-- If you can, include a source that can strengthen your claim -->

## Tests Performed:
<!-- Does it build without errors? Did you test in-game? What did you test? On which OS did you test? Describe any other tests performed -->
- Executing commands to build and start the game server
- after creating an account, I can log in and play without any issues. 


## How to Test the Changes:
<!-- Describe in a detailed step-by-step order how to test the changes -->

1.  Execute commands
   
    ```bash
    $ ./acore.sh docker clean:build && ./acore.sh docker build:nocache && ./acore.sh docker start:app
    ```
2. Create account and log in as normal

## Known Issues and TODO List:
<!-- Is there anything else left to do after this PR? -->

- The largest issue that comes to mind is this is a breaking change for docker users (though, so was the change that caused this)
  - Docker users (and nobody else, of course) can no longer use the ".conf" for custom changes in docker setups. 
  - Their custom changes will have to be migrated to the ".user" file
  - Since the old ".conf" file is backed up, users should have minimal trouble copying the changes in the old ".conf" file to the new ".user" file

<!-- If you intend to contribute repeatedly to our project, it is a good idea to join our discord channel. We set ranks for our contributors and give them access to special resources or knowledge: https://discord.com/invite/DasJqPba)
     Do not remove the instructions below about testing, they will help users to test your PR -->
## How to Test AzerothCore PRs
 
When a PR is ready to be tested, it will be marked as **[WAITING TO BE TESTED]**.

You can help by testing PRs and writing your feedback here on the PR's page on GitHub. Follow the instructions here:

http://www.azerothcore.org/wiki/How-to-test-a-PR

**REMEMBER**: when testing a PR that changes something **generic** (i.e. a part of code that handles more than one specific thing), the tester should not only check that the PR does its job (e.g. fixing spell XXX) but **especially** check that the PR does not cause any regression (i.e. introducing new bugs).

**For example**: if a PR fixes spell X by changing a part of code that handles spells X, Y, and Z, we should not only test X, but **we should test Y and Z as well**.

edit: link related PR
2023-01-23 18:03:28 +01:00
2021-06-15 11:02:48 +02:00
2023-01-22 01:56:14 +00:00
2022-03-24 09:29:07 +00:00
2023-01-01 11:06:21 -03:00
2018-07-15 22:51:17 +02:00
2016-06-26 10:39:44 +02:00

logo AzerothCore

CodeFactor core-build core-modules-build windows-build macos-build docker-build Bountysource StackOverflow Discord

Introduction

AzerothCore (AC) is an open-source game-server application for World of Warcraft, currently supporting the 3.3.5a game version.

It is written in C++ and is based on MaNGOS, TrinityCore and SunwellCore.

Why AzerothCore?

  1. Stability
  2. The authenticity of the content
  3. Modularity
  4. A lot of modules to choose from
  5. Better configuration files system
  6. Compatibility with other emulators
  7. Friendly and helpful community

Stability

As players and administrators ourselves, we take great care into the stability of our core. Other projects focus on the development side of things and tend to forget that users want stability above everything else.

Hence why nobody is allowed to push commits directly to the core. All changes are reviewed and tested before they get to the master branch which means we need as many testers as possible to avoid stalling issues.

Authenticity

Fixing and implementing missing blizzlike content is one of our priorities, and we can boast to offer the most content-complete open-source emulator.

Modules

Modules are essential to AzerothCore's success. Modules allow users to plug them in and out easily, and do not require to modify the core files. It also means users can keep pulling the git changes from the main repository and only develop their modules.

We have a lot of modules already made, some of them are very important and will ease your work:

Configuration files

Our configuration file system allows the user to use a tiny configuration file for better readability and maintenance.

Compatibility with other emulators

Not very far from its ancestor TrinityCore, most scripts can be adapted quite easily. For MaNGOS compatibility, it might require more knowledge but it shares a common base.

Philosophy

Our main goal is to create a playable game server, offering a fully working game experience.

Here are the main points we focus on:

  • Stability
  • Ease of use / Practicability
  • Playability (in-game content)
  • Customization
  • Community-driven software (check our discord)

We also welcome new users (even non-English speaking users!) and help them learn/improve their skills (C++, SQL, Git, software collaboration, tutoring/wiki, etc...).

Unlike other projects which focus more on the developer's side of things, we want users to be able to run their server with as few troubles as possible. All of our contributors run their private servers (local or public).

That's why AzerothCore is easier to use, to maintain, to understand, to develop on, and to customize to suit your needs, than other emulators.

In short, we focus on the user experience (UX), whether it be the player's experience, the developer's experience, or the administrator's experience.

How to Thank us

Being an open-source project, we rely on volunteers to pursue development. Here are ways to help us if you use AzerothCore:

Github Star

Click on the "star this repository" button to help us gain more visibility on Github!

By contributing

Check the CONTRIBUTING section below.

Financially 💰

You can support the AzerothCore by donating. The money will be used to pay freelance developers for more open-source fixes.

Advertising

By talking about us on different platforms or to people who would like to get involved.

Contributing

AzerothCore is a learning project, and there are lots of different ways to contribute to the project:

  • By testing our fixes (we can teach you how to correctly use Git to help us but that will also help you out tremendously)
  • By developing directly to the core or the modules
  • By reporting bugs within the project
  • By creating new modules
  • By improving our wiki
  • By providing direct support to our community (on Discord, StackOverflow or specialized forums)
  • By making extra content (video tutorial for example)
  • By putting bounties on issues

If you want to contribute to the project, you will find a lot of resources that will guide you in our wiki.

Feel free to join us on our Discord chat server where we teach a lot of new people how to get started and who are now important contributors!

Installation

Installation instructions are available here.

We also have an auto-installation bash script here (Warning: try it/analyze it before running it).

Dockerization of AzerothCore is fully supported, and we have various community-made tutorials (eg: AWS / Digital Ocean installation).

Support

Our self-made wiki probably has a lot of answers for you.

For help requests, it is recommended to ask your question on StackOverflow and link it in our chat.

Authors & Contributors

This project exists thanks to:

License

  • The new AzerothCore source components are released under the GNU AGPL v3
  • The old sources based on MaNGOS/TrinityCore are released under the GNU GPL v2

Special thanks

JetBrains is providing free open-source licenses to the AzerothCore developers.

JetBrains

Languages
C++ 92.4%
C 5.3%
Shell 1.3%
CMake 0.7%
Python 0.2%