Serveur MOHAA Reborn en Docker

Docker 1 nov. 2021

Au détour d’une conversation avec Tiragun sur le chan Docker du Discord de SuperBoki, j’ai replongé environ 20 ans en arrière !!

Medal Of Honor… AA (Allied Assault), SH (Spear head)… A l’époque j’ai même joué en “clans”, avec trainings and co. C’était très fun, spécialisé rifle et/ou sniper only, donc du coup par coup, idéal pour apprendre à utiliser une souris :)

Passé à autre chose depuis, je redécouvre ce jeu. Notamment Reborn, un patch fait par des joueurs.

Bref, Tiragun voulait se monter un serveur MOHAA en Docker via le travail de solipsist01. Le hic c’est qu’il n’a pas prévu de volume à monter localement pour ajouter, facilement, des cartes, skins etc.
Sachant que le dossier du jeu dans le Docker, /app, est le WORKDIR. En se référant à la doc Docker on sait qu’un WORKDIR ne peut pas être monté localement (c’est pas un VOLUME). Un VOLUME (-v) n’est créé qu’au lancement de Docker et non lors de sa construction (build).

Pour faire simple, et parce que je ne suis pas un pro de Docker, j’ai contourné ça en créant un dossier /stuff à monter localement en VOLUME dans lequel on pourra ajouter des cartes etc.
J’ai ajouté cron et un cronjob pour que, chaque minute, le contenu de /stuff soit copié dans /app. Et j’ai évidemment dû modifier l’exécution du Docker pour qu’il lance le serveur de jeu mais aussi le cron.

C’est sans doute moche mais vu de chez moi c’était le plus simple :)

J’ai poussé le Docker sur DockerHub.
J’ai aussi fait un repository Github si certains se sentent d’améliorer le bousin ou si vous voulez build vous-même.

Pour le lancer :

docker run -d \
--name=mohaa \
--restart always \
-p 12203:12203/udp \
-p 12300:12300/udp \
-e TZ=Europe/Paris \
-v /home/aerya/docker/mohaa/config:/config \
-v /home/aerya/docker/mohaa/stuff:/stuff \
aerya/mohaa-server-volume-enabled:latest

Pour ceux qui découvrent Docker :

Vous pouvez bien entendu changer les ports (-p x:12203/udp et -p y:12300/udp) comme la time zone (-e TZ=Continent/Ville).
La configuration du serveur peut être modifiée dans /config (-v là/où/vous/voulez:/config) et donc les maps etc s’ajoutent dans /stuff (-v là/où/vous/voulezBis:/stuff).
Faut ensuite patienter 1 minute pour que son contenu soit copié dans le Docker.

Et j’ai beau avoir encore les DVD d’installation du jeu, autant faire simple là aussi. Il existe un pack, des traductions et autres outils.

D’ailleurs, si vous voulez vous entraîner, découvrir le jeu tranquillement ou n’aimez juste pas jouer “en ligne”,, y’a des mods de Bots ;)

GL HF!

Mots clés