lighta 629c7b50f3
Latiosu feat/docker (#5572)
* Add dockerised local development environment

* Enable tini (--init) for server container

See https://docs.docker.com/compose/compose-file/#init for details

* Add local development environment documentation

* Add a tip for how-to connect a client on the same machine

* Add specialized tools/docker folder

Co-authored-by: Eric <latiosworks@gmail.com>
2020-11-26 19:58:09 +01:00
..
2020-11-26 19:58:09 +01:00
2020-11-26 19:58:09 +01:00
2020-11-26 19:58:09 +01:00
2020-11-26 19:58:09 +01:00

Docker

Note that this Dockerized environment is not suitable for production deployments, see Installations instead.

How to setup a local development environment 💻

  1. docker-compose up -d to spin up dev container and database (ensure port 3306 is free)
  2. docker exec -it rathena bash to connect to dev container
  3. All rAthena development commands can be executed inside the dev container, such as compiling (./configure, make clean server) and starting the server (./athena-start, gdb map-server, etc ...)
  4. docker-compose down outside the dev container when done to close database and free resources

Tips & tricks for local development 🔰

  • Ensure you don't have a database running locally and listening on port 3306 this will cause the database container to fail starting up.
  • All file edits within the repository are reflected inside the container, so you can develop in your preferred text editor or IDE.
    • Files into ./asset take precedence over conf/import/ counterpart
  • Connect to the local database with following credentials:
    • Host: localhost
    • Port: 3306
    • User: ragnarok
    • Password: ragnarok
  • On first start up all /sql-files/*.sql files are imported into the database. This does not happen on future start ups unless the volume has been deleted.
  • Database is saved to local disk so state is persisted between shutdowns and start ups. To fully erase your database and start fresh, delete the volume with docker-compose down --volumes
  • Check the status of containers with docker-compose ps
  • If you have modified the Dockerfile, be sure to rebuild the docker image with docker-compose build

F.A.Q

ls: can't open '.': Permission denied turn off selinux.