From cc75c0746f429b0704d7ae771e95a790d2ee105c Mon Sep 17 00:00:00 2001 From: Thanh Tam-Tanguy TRAN Date: Fri, 20 Mar 2020 17:45:50 +0100 Subject: [PATCH] Allow to start the minecraft server from Docker (#5) * feat(Docker): Dockerized minecraft application * Fixed typo & Improvements in README.md Co-authored-by: leomelki --- .dockerignore | 0 .gitignore | 3 +++ README.md | 37 ++++++++++++++++++++++++++++++++++--- docker-compose.yaml | 13 +++++++++++++ docker/Dockerfile | 30 ++++++++++++++++++++++++++++++ pom.xml | 3 ++- 6 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 .dockerignore create mode 100644 docker-compose.yaml create mode 100644 docker/Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e69de29 diff --git a/.gitignore b/.gitignore index cfa64b8..dd5a7bc 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,6 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* + +# Minecraft data +/minecraft_data diff --git a/README.md b/README.md index 88e0ac6..897670e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ + ## Table des matières @@ -6,6 +7,8 @@ - [À propos](#à-propos) - [Installation](#installation) - [Dépendances requises](#dépendances-requises) + - [Installation classique](#installation-classique) + - [Installation avec docker (Alternative)](#installation-avec-docker-alternative) - [Commandes](#commandes) - [Crédits](#crédits) - [Aide](#aide) @@ -25,6 +28,10 @@ Le mode Loup-Garou est un mode inspiré du jeu de société [Les Loups-Garous de ## Installation +### Dépendances requises +- [ProtocolLib](https://www.spigotmc.org/resources/protocollib.1997/) + +### Installation classique **Minecraft 1.15.1 est requis.** Pour installer le plug-in, merci de suivre les étapes suivantes: - Téléchargez Spigot 1.15.1 et lancez une fois le serveur @@ -37,9 +44,33 @@ Pour installer le plug-in, merci de suivre les étapes suivantes: - ⚠️ N'oubliez pas de mettre votre pseudo. Exemple : `/lg start leomelki` Lien des releases : [Cliquez ici](https://github.com/leomelki/LoupGarou/releases) -### Dépendances requises -- [ProtocolLib](https://www.spigotmc.org/resources/protocollib.1997/) + +### Installation avec docker (Alternative) + +Vous devez avoir installé `docker` et `docker-compose` sur votre machine + +#### Installation du serveur +```sh +docker-compose up -d --build +``` + +#### Démarage du serveur + +Vous devez exécuter la commande suivante à chaque redémarage de votre machine avant de pouvoir continuer + +```sh +docker-compose up -d +``` + +Ainsi, vous pouvez lancer le serveur en utilisant la commande suivante : + +```sh +docker-compose exec loup-garou java -jar spigot.jar +``` + +Les fichiers relatifs à minecraft se situeront dans le dossier `minecraft_data` +> **Tip :** Il faut accepter les conditions d'utilisations de Mojang en modifiant le fichier `minecraft_data/eula.txt` ## Commandes @@ -107,4 +138,4 @@ Merci de garder cela en tête lors du développement de nouveaux rôles : utilis ### Publier un rôle -Si vous arrivez à créer un rôle, je vous invite à faire une demande de publication dans cette repo afin de les faire partager à l'ensemble de la communauté ! \ No newline at end of file +Si vous arrivez à créer un rôle, je vous invite à faire une demande de publication dans cette repo afin de les faire partager à l'ensemble de la communauté ! diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..ed5ddf6 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,13 @@ +version: "3.0" + +services: + loup-garou: + build: + context: . + dockerfile: ./docker/Dockerfile + args: + SPIGOT_VERSION: 1.15.1 + volumes: + - ./minecraft_data:/minecraft + ports: + - 25565:25565 diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..8db889a --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,30 @@ +ARG SPIGOT_VERSION=1.15.1 + +# Build Loup-Garou project +FROM maven:3.3-jdk-8 as LOUP_GAROU_BUILDER +WORKDIR /app +COPY . . +RUN mvn clean install +RUN mvn package + +# Build Spigot project +FROM openjdk:8 AS SPIGOT_BUILDER +ARG SPIGOT_VERSION +WORKDIR /spigot +RUN apt-get update +ADD https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar buildtools.jar +RUN git config --global --unset core.autocrlf || true +RUN java -jar buildtools.jar --rev ${SPIGOT_VERSION} + +# Final server image +FROM openjdk:8 +ARG SPIGOT_VERSION +WORKDIR /_minecraft +COPY --from=LOUP_GAROU_BUILDER /app/target/LoupGarou.jar ./plugins/ +ADD https://github.com/dmulloy2/ProtocolLib/releases/download/4.5.0/ProtocolLib.jar ./plugins +COPY --from=SPIGOT_BUILDER /spigot/spigot-${SPIGOT_VERSION}.jar ./spigot.jar + +VOLUME /minecraft +WORKDIR /minecraft +EXPOSE 25565 +CMD cp -rn /_minecraft/* . && tail -f /dev/null diff --git a/pom.xml b/pom.xml index 9948414..18ed378 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,7 @@ UTF-8 + LoupGarou src @@ -87,4 +88,4 @@ provided - \ No newline at end of file +