Dockerised Hercules

theoutrider

New member
Messages
5
Points
0
Location
Cambridge, UK
Discord
ektoutie#4169
Github
fpiesche
Emulator
Client Version
2018-04-18 MAIN
I've spent the past week or so messing around with Docker, and am pleased to announce that I've put together a Docker setup for Hercules, covering both building Hercules and bringing up actual servers!

https://github.com/fpiesche/hercules-docker

I just want to run a Ragnarok Online server, what do I get out of this?
You can now bring up a server (on a Raspberry Pi or other ARM mini-computer, for now) within moments using a single command! See my post below for information.

I want to develop plugins or contribute to Hercules, what do I get out of this?
You can now build Hercules without having to set up a build environment (other than installing Docker), on all operating systems and platforms (even a Raspberry Pi, if you so wish)! Just use your usual code editor and the git repository above - make your changes in the hercules-src directory and get a clean Linux build by simply running docker-compose up! You can then further run the new server by running docker build -t hercules:latest; docker-compose up.

This Docker setup will, with minimal effort:

- Build Hercules on Linux in a clean, minimal environment (Ubuntu 18.04), all within a Docker container separate from your main system. All dependencies are taken care of and you'll have the exact same build environment as everyone else using the Docker setup! No need to install any development libraries, compilers, etc on your machine. Just run docker-compose up in the main directory and Docker will do all the work.

- It will also split out only the data necessary for running a server into a local directory on the Docker host, so you can build a Linux version of Hercules without needing a development environment on your PC/VPS/etc!

- The "distribution" generated is also all set up so you can containerise it into a Docker image, and bring it up as a Docker cluster together with a database server! No need to install MySQL and import .sql files and keep track of their order to bring your server up. Just navigate to the distribution directory, run docker-compose up and, again, Docker will do all the work.

All in all, with the help of this making a build and bringing up a Hercules server is a matter of mere minutes! If you have an ARM computer, e.g. a Raspberry Pi, you can bring up a server with just a single command (see the following post). If you want to launch a server via Docker on Intel hardware (e.g. your home computer or a hosted Linux server), you can make and deploy your own x86 build with just six commands:

Code:
$ git clone https://github.com/fpiesche/hercules-docker
$ cd hercules-docker
$ docker-compose up
$ cd hercules
$ docker build . --tag=hercules:latest
$ docker-compose up


The database data and Hercules conf directories are stored separately from the container in a Docker volume; this means their contents will persist even if you choose to rebuild the container (eg. to get an updated version of Hercules going). You can edit the configuration either by using Docker's "Attach Shell" functionality and just editing the files directly in the container, or you can edit them on your host machine using your favourite editor.

 
Last edited by a moderator:
There is now a set of Hercules server images available on Docker Hub!

There are images for pre-Renewal and Renewal servers with the latest client version and the 20180418 version to match the "Newbie Pack" available here on the forums, compiled for 32- and 64-bit systems based on both ARM CPUs (e.g. Raspberry Pi and similar minicomputers) as well as normal Windows/Linux/macOS machines on Intel/AMD hardware.

https://hub.docker.com/repository/docker/florianpiesche/hercules-classic-default

https://hub.docker.com/repository/docker/florianpiesche/hercules-renewal-default

https://hub.docker.com/repository/docker/florianpiesche/hercules-classic-20180418

https://hub.docker.com/repository/docker/florianpiesche/hercules-renewal-20180418

How to bring up a server using these images:


[*]Visit the link above for the version of Hercules you want to run

[*]Copy the docker-compose.yml contents from the page to a new text file on your computer

[*]Run docker-compose up



That's all there is to it! Bringing up the server should only take a few moments.

 
Last edited by a moderator:
[never mind, accidentally double posted]

 
Last edited by a moderator:
Back
Top