Add build configuration system and paper image

- Add 'make paper' target to build a Paper image with plugins based on JRE
- Introduce dynamic .env and plugins.json configuration using Makefile
- Enable users to extend builds by managing their own directories in scratch/
- Implement copy_build_files macro for reproducible build management
- Add BUILDKIT_PROGRESS and DOCKER_BUILDKIT as configurable make vars
This commit is contained in:
2024-05-24 03:15:54 -04:00
parent 813b9de410
commit 4ce50becd2
11 changed files with 321 additions and 13 deletions

28
builds/basic/.env Normal file
View File

@@ -0,0 +1,28 @@
# While setting EULA to false in 'builds' is potentially annoying, it is done
# intentionally to bring to attention the need to manually and explicitly agree
# to Minecraft's EULA before being able to run or build these images
EULA=false
VERSION=1.20.1
RUN_TAG=${VERSION}-paper
# Builds
VANILLA_TAG=${VERSION}
PAPER_TAG=${VERSION}-paper
SPIGOT_TAG=${VERSION}-spigot
CRAFTBUKKIT_TAG=${VERSION}-craftbukkit
########################
# Extra image settings #
########################
#
# JAVA_VERSION=latest
# JRE_IMAGE=localhost/minecraft-jre
# JDK_IMAGE=localhost/minecraft-jdk
# JRE_TAG=latest
# JDK_TAG=latest
#
# VANILLA_IMAGE=localhost/minecraft
# PAPER_IMAGE=localhost/minecraft
# SPIGOT_IMAGE=localhost/minecraft
# CRAFTBUKKIT_IMAGE=localhost/minecraft
#

39
builds/basic/plugins.json Normal file
View File

@@ -0,0 +1,39 @@
{
"plugins": [
{
"name": "EssentialsX",
"version": "2.20.1",
"hash": "sha256:802ea30bda460ca4597e818925816933c123b08d8126a814fac28d03a61bf542",
"url": "https://github.com/EssentialsX/Essentials/releases/download/${version}/EssentialsX-${version}.jar",
"info_url": "https://essentialsx.net/wiki/Home.html"
},
{
"name": "EssentialsXChat",
"version": "2.20.1",
"hash": "sha256:40aa5c20241ceb3007ebcb5cfbf19bf2c467b0c090ae50e70653ee87ab775ca6",
"url": "https://github.com/EssentialsX/Essentials/releases/download/${version}/EssentialsXChat-${version}.jar",
"info_url": "https://essentialsx.net/wiki/Module-Breakdown.html#essentialsx-chat"
},
{
"name": "EssentialsXSpawn",
"version": "2.20.1",
"hash": "sha256:650d7c6a33865a02c5ffa4eb710def28e73d972c9aef85b2b1f4e71b9bd261a0",
"url": "https://github.com/EssentialsX/Essentials/releases/download/${version}/EssentialsXSpawn-${version}.jar",
"info_url": "https://essentialsx.net/wiki/Module-Breakdown.html#essentialsx-spawn"
},
{
"name": "WorldEdit",
"version": "7.3.1",
"hash": "md5:c44cd1c16c3d84d8efc57bbf417606cb",
"url": "https://dev.bukkit.org/projects/worldedit/files/5326355/download",
"info_url": "https://dev.bukkit.org/projects/worldedit"
},
{
"name": "WorldGuard",
"version": "7.0.9",
"hash": "md5:70d6418dd6a2e4492a9f18e5f9ecb10c",
"url": "https://dev.bukkit.org/projects/worldguard/files/4675318/download",
"info_url": "https://dev.bukkit.org/projects/worldguard"
}
]
}