PDA

View Full Version : Docker


baroughter
03-02-2019, 03:05 PM
Hiya. I am looking into installing eqemu on a linux server. However I'd prefer to use Docker, because i'm already using this server for many other docker services (and it is not quite beefy enough to be a real VM host). Anyway, I see this, but it hasn't been updated in awhile (and I've tried to use it before and had issues):

https://github.com/jd-war-eagle/eqemu-docker

Just curious if anyone has any advice on this subject, or if you think I should give up and just run it bare-metal.

Thankya!

jmac
03-02-2019, 03:24 PM
Love docker. Don't think you need to follow someone else's docker file for this. Just brainstorming here, but all you'd have to do is get a docker image that matches 1 of the supported OS's on https://github.com/EQEmu/Server/wiki/Linux-Server . Then you would setup the docker file to run the eqemu install commands if you want to have a rebuildable eqemu docker image. However, you could just fire up an ubuntu instance, run the install commands manually and save the image as a .tar ball that you can later load. There will probably be some network ports to open up and some permission layers. You could go further by splitting off the db to its own mysql image, and using docker-compose to link it all up.

baroughter
03-02-2019, 03:57 PM
Thank you. Yep, already started something like that. This existing docker one seems to unnecessarily build MySQL manually when it could easily use an existing mariadb image.

Anyway, if I get this working I'll put it on Github somewhere. I'm not an EQEmu expert so I don't quite understand why this existing docker script builds eqemu with loginserver enabled (which means it needs to do some things that aren't in the official perl script)

Akkadius
03-02-2019, 06:44 PM
There's also this that I made mostly for development and standing up quick test servers for PEQ

https://github.com/Akkadius/eqemu-docker

Disclaimer: All of this runs out of one container which does not follow the typical one process per container paradigm. There's a workspace container which runs all of the emulator binaries, compilation etc and then there is the mariadb container

This is not an officially supported branch but it works more than fine for what it was whipped together for

Eventually I will put together a production ready deployment setup, but it is not on my priority list right now, but I'm putting it out there as-is for folks who wish to play with it.

This could probably run a production server just fine, just everything runs in one container

All you need to do to get it all setup is run `make install`

make
-----------------------------------------
| Welcome to EQEmu Docker!
-----------------------------------------
| usage: make [command]
-----------------------------------------

assets:
pull-maps Pulls maps
pull-eqemu-code Pulls eqemu code
pull-eqemu-server-script Pulls eqemu_server.pl
pull-peq-quests Pulls ProjectEQ quests
pull-docker-config Pulls default eqemu_config.json
pull-utility-scripts Pulls utility scripts (start/stop server)

build:
init-build Initialize build
build Build EQEmu server
build-clean Cleans build directory
build-with-cores Build EQEmu server (make build-with-cores <number>)

docker:
up Bring up the whole environment
down Down all containers
restart Restart containers

init:
install Install full application
init-server-directories Initializes server directories
init-peq-database Sources fresh PEQ database (Warning: Will over-write existing)

other:
help Show this help.

server:
server-start Start EQEmu Server
server-stop Stop EQEmu Server

workflow:
bash Bash into workspace
mysql-console Jump into the MySQL container console
chown-eqemu Sets eqemu user ownership over files inside container