Compare commits

...

34 Commits

Author SHA1 Message Date
Geoff Bourne
67b0074a9e build: introduce stable-{variant} image tags (#3468) 2025-05-26 16:26:11 -05:00
Geoff Bourne
a8900661f2 examples: increase memory for ftba example (#3467) 2025-05-24 13:52:41 -05:00
Geoff Bourne
ae32ce0738 mohist: use https://api.mohistmc.com download API (#3464) 2025-05-24 08:24:23 -05:00
dependabot[bot]
1370f58c26 build(deps): bump mkdocs-material from 9.6.13 to 9.6.14 in /docs in the patches group (#3459) 2025-05-19 11:19:21 -05:00
dependabot[bot]
89a6e1ad88 build(deps): bump docker/build-push-action from 6.16.0 to 6.17.0 in the updates group (#3458) 2025-05-19 07:22:31 -05:00
Dragonvi1
dc97022b98 Added forceInclude for particular-reforged since it's MC 1.20.1 (#3450) 2025-05-16 17:03:26 -05:00
Geoff Bourne
190ecd3278 cf: fix missing comma in cf-exclude-include.json (#3449) 2025-05-16 12:09:29 -05:00
Dragonvi1
15016996e2 Added Beyond Depth's client mods to the cf-exclude-include.json (#3448) 2025-05-16 07:58:59 -05:00
dependabot[bot]
fd83920383 build(deps): bump mkdocs-material from 9.6.12 to 9.6.13 in /docs in the patches group (#3446) 2025-05-15 07:02:03 -05:00
Geoff Bourne
5fe65a68c3 Add to global excludes the ones needed for Craftoria (#3440) 2025-05-10 11:25:08 -05:00
XHawk87
89ffb2377a Added Ansible and MASH to deployment docs (#3439) 2025-05-08 12:57:48 -05:00
Kim
8c52b98d91 Add smithing-template-viewer to cf-exclude-include.json (#3438) 2025-05-08 07:32:50 -05:00
Fournet Enzo
9d749ab514 CF: Ignoring particular (#3437) 2025-05-05 13:54:25 -05:00
Geoff Bourne
1c0fe6ff10 Use /data/tmp for WORLD zip preparation (#3322) 2025-05-04 16:49:32 -05:00
Geoff Bourne
ae4756f5a7 Change auto_curseforge test to use CF_PAGE_URL (#3431) 2025-04-30 09:45:28 -05:00
Geoff Bourne
6cbedd8c26 Revert (for now) the feature to limit concurrent modpack file downloads (#3430) 2025-04-30 09:21:23 -05:00
Geoff Bourne
62be34bae9 Upgrade mc-image-helper to 1.41.8 (#3429) 2025-04-28 21:21:55 -05:00
dependabot[bot]
c0f1a7e1cb build(deps): bump docker/build-push-action from 6.15.0 to 6.16.0 in the updates group (#3428) 2025-04-28 08:26:17 -05:00
dependabot[bot]
06ba3c8c77 build(deps): bump mkdocs-material from 9.6.11 to 9.6.12 in /docs in the patches group (#3425) 2025-04-21 07:26:57 -05:00
Geoff Bourne
0ec908b243 Corrected build entries for Java 24 (#3421) 2025-04-18 21:44:32 -05:00
Geoff Bourne
d9615e3558 Add Java 24 image variants (#3420) 2025-04-18 21:35:24 -05:00
dependabot[bot]
dcf2f46620 build(deps): bump mkdocs-click from 0.8.1 to 0.9.0 in /docs in the patches group (#3413) 2025-04-16 20:14:59 -05:00
Geoff Bourne
8ba47ea280 deps: upgrade tools to Go 1.24.2 (#3412) 2025-04-13 08:32:45 -05:00
Geoff Bourne
21593d2e43 fabric: accept shared-fetch/netty arguments (#3411) 2025-04-12 13:46:23 -05:00
dependabot[bot]
c8a7513322 build(deps): bump mkdocs-material from 9.6.10 to 9.6.11 in /docs in the patches group (#3406) 2025-04-07 07:26:47 -05:00
Tobias
66d0605502 add resources key to docker compose jvm options (#3404) 2025-04-06 22:26:37 -05:00
Geoff Bourne
5fad540c57 Revert "Add support of CF_API_KEY_FILE environment variable" (#3402) 2025-04-05 09:13:18 -05:00
Geoff Bourne
04713222c9 docs: add a note about downloading fabric-api (#3401) 2025-04-05 08:53:06 -05:00
Maxim Liven
483cd3a1d8 Add support of CF_API_KEY_FILE environment variable (#3396) 2025-04-05 08:37:51 -05:00
Geoff Bourne
5b549c0483 build: add image info properties (#3400) 2025-04-04 20:25:19 -05:00
Geoff Bourne
c57760e4b4 docs: fix formatting for image labels list (#3399) 2025-04-04 14:57:27 -05:00
Geoff Bourne
fd3655be88 docs: added info about image labels (#3398) 2025-04-04 14:51:45 -05:00
Geoff Bourne
d6897a649e fabric: retry loader version lookup (#3394) 2025-04-02 21:15:38 -05:00
JairG
9f1a18ef34 fixed logic to not compare the VERSION number when VERSION is set to … (#3389) 2025-04-02 19:38:04 -05:00
21 changed files with 184 additions and 97 deletions

View File

@@ -20,8 +20,8 @@ jobs:
matrix:
# NOTE: the "latest" variant is identified in the Docker meta step's 'latest' config
variant:
- java23
- java23-graalvm
- java24
- java24-graalvm
- java21
- java21-alpine
- java21-graalvm
@@ -33,15 +33,14 @@ jobs:
- java8-graalvm-ce
- java8-openj9
- java8-jdk
- java11
include:
# JAVA 23
- variant: java23
baseImage: eclipse-temurin:23-jre
# JAVA 24
- variant: java24
baseImage: eclipse-temurin:24-jre
platforms: linux/amd64,linux/arm64
mcVersion: latest
- variant: java23-graalvm
baseImage: container-registry.oracle.com/graalvm/jdk:23-ol8
- variant: java24-graalvm
baseImage: container-registry.oracle.com/graalvm/jdk:24-ol8
platforms: linux/amd64,linux/arm64
mcVersion: latest
# JAVA 21:
@@ -75,11 +74,6 @@ jobs:
baseImage: eclipse-temurin:17-jre-alpine
platforms: linux/amd64
mcVersion: 1.20.4
# JAVA 11:
- variant: java11
baseImage: adoptopenjdk:11-jre-hotspot
platforms: linux/amd64,linux/arm/v7,linux/arm64
mcVersion: 1.16.5
# JAVA 8: NOTE: Unable to go past 8u312 because of Forge dependencies
- variant: java8
baseImage: eclipse-temurin:8u312-b07-jre-focal
@@ -119,16 +113,18 @@ jobs:
${{ github.repository_owner }}/minecraft-server
ghcr.io/${{ github.repository_owner }}/minecraft-server
tags: |
# For the "main" variant, it gets the tag as-is, without suffix
type=ref,event=tag,enable=${{ matrix.variant == env.MAIN_VARIANT }}
# and each variant (including main one) gets the tag with the variant suffix, such as 2023.1.1-java17
type=ref,event=tag,suffix=-${{ matrix.variant }}
# Apply the variant as a moving tag for most recent commit per variant
type=raw,value=${{ matrix.variant }},enable=${{ github.ref_name == github.event.repository.default_branch }}
# For the "main" variant, it gets the tag as-is
type=pep440,pattern={{version}},enable=${{ matrix.variant == env.MAIN_VARIANT }}
# ...and all variants (including main one) get the tag with the variant suffix, such as 2023.1.1-java17
type=pep440,pattern={{version}},suffix=-${{ matrix.variant }}
# latest tag gets a moving 'stable' image tag applied to the main variant
type=pep440,pattern=stable,enable=${{ matrix.variant == env.MAIN_VARIANT }}
# ...and qualified stable for all variants
type=pep440,pattern=stable,suffix=-${{ matrix.variant }}
# for building test/* branch images
type=ref,event=branch,suffix=-${{ matrix.variant }},enable=${{ github.ref_name != github.event.repository.default_branch }}
# latest repo tag gets a moving 'stable' image tag applied to the main variant
type=raw,value=stable,enable=${{ github.ref_type == 'tag' && matrix.variant == env.MAIN_VARIANT }}
# apply the variant as a moving tag for most recent commit per variant
type=raw,value=${{ matrix.variant }},enable=${{ github.ref_name == github.event.repository.default_branch }}
# for backward compatibility with users referencing java8-multiarch, this will set an extra label on java8
type=raw,value=java8-multiarch,enable=${{ matrix.variant == 'java8' && github.ref_name == github.event.repository.default_branch }}
# NOTE this identifies which variant will be published as "latest", which isn't
@@ -145,7 +141,7 @@ jobs:
uses: docker/setup-qemu-action@v3.6.0
- name: Build for test
uses: docker/build-push-action@v6.15.0
uses: docker/build-push-action@v6.17.0
with:
platforms: linux/amd64
tags: ${{ env.IMAGE_TO_TEST }}
@@ -183,7 +179,7 @@ jobs:
password: ${{ github.token }}
- name: Build and push
uses: docker/build-push-action@v6.15.0
uses: docker/build-push-action@v6.17.0
if: github.actor == github.repository_owner
with:
platforms: ${{ matrix.platforms }}
@@ -207,5 +203,8 @@ jobs:
build-args: |
BASE_IMAGE=${{ matrix.baseImage }}
BUILD_FILES_REV=${{ steps.build-files-rev.outputs.REV }}
BUILDTIME=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}
VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}
REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
cache-from: type=gha,scope=${{ matrix.variant }}
cache-to: type=gha,mode=max,scope=${{ matrix.variant }}

View File

@@ -56,7 +56,7 @@ jobs:
uses: docker/setup-buildx-action@v3.10.0
- name: Confirm multi-arch build
uses: docker/build-push-action@v6.15.0
uses: docker/build-push-action@v6.17.0
with:
platforms: ${{ matrix.platforms }}
# ensure latest base image is used
@@ -66,7 +66,7 @@ jobs:
cache-from: type=gha,scope=${{ matrix.variant }}
- name: Build for test
uses: docker/build-push-action@v6.15.0
uses: docker/build-push-action@v6.17.0
with:
# Only build single platform since loading multi-arch image into daemon fails with
# "docker exporter does not currently support exporting manifest lists"

View File

@@ -26,11 +26,11 @@ EXPOSE 25565
ARG APPS_REV=1
ARG GITHUB_BASEURL=https://github.com
ARG EASY_ADD_VERSION=0.8.9
ARG EASY_ADD_VERSION=0.8.10
ADD ${GITHUB_BASEURL}/itzg/easy-add/releases/download/${EASY_ADD_VERSION}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
RUN chmod +x /usr/bin/easy-add
ARG RESTIFY_VERSION=1.7.7
ARG RESTIFY_VERSION=1.7.9
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
@@ -40,7 +40,7 @@ RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=${RCON_CLI_VERSION} --var app=rcon-cli --file {{.app}} \
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
ARG MC_MONITOR_VERSION=0.15.3
ARG MC_MONITOR_VERSION=0.15.5
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=${MC_MONITOR_VERSION} --var app=mc-monitor --file {{.app}} \
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
@@ -50,7 +50,7 @@ RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=${MC_SERVER_RUNNER_VERSION} --var app=mc-server-runner --file {{.app}} \
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
ARG MC_HELPER_VERSION=1.41.5
ARG MC_HELPER_VERSION=1.41.9
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
# used for cache busting local copy of mc-image-helper
ARG MC_HELPER_REV=1
@@ -69,7 +69,7 @@ ENV TYPE=VANILLA VERSION=LATEST EULA="" UID=1000 GID=1000 LC_ALL=en_US.UTF-8
COPY --chmod=755 scripts/start* /
COPY --chmod=755 bin/ /usr/local/bin/
COPY --chmod=755 bin/mc-health /health.sh
COPY --chmod=644 files/* /image/
COPY --chmod=755 files/* /image/
COPY --chmod=755 files/auto /auto
RUN curl -fsSL -o /image/Log4jPatcher.jar https://github.com/CreeperHost/Log4jPatcher/releases/download/v1.0.1/Log4jPatcher-1.0.1.jar
@@ -78,3 +78,8 @@ RUN dos2unix /start* /auto/*
ENTRYPOINT [ "/start" ]
HEALTHCHECK --start-period=2m --retries=2 --interval=30s CMD mc-health
ARG BUILDTIME=local
ARG VERSION=local
ARG REVISION=local
RUN echo "buildtime=${BUILDTIME}\nversion=${VERSION}\nrevision=${REVISION}" > /etc/image.properties

View File

@@ -46,8 +46,9 @@ To let the JVM calculate the heap size from the container declared memory limit,
MEMORY: ""
JVM_XX_OPTS: "-XX:MaxRAMPercentage=75"
deploy:
limits:
memory: 4G
resources:
limits:
memory: 4G
```
!!! important

View File

@@ -13,6 +13,17 @@
[Shulker](https://github.com/jeremylvln/Shulker) is a Kubernetes operator for managing complex and dynamic Minecraft infrastructures, including game servers and proxies. It uses the docker-minecraft-server and docker-bungeecord images under-the-hood.
## With Ansible
[Ansible](https://docs.ansible.com/ansible/latest/getting_started/introduction.html) is an open-source task automation tool built in [Python](https://www.python.org/). Ansible playbooks can be used to automate all kinds of tasks, including deploying remote Minecraft servers.
### Using the MASH playbook
[The MASH Playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) is a premade playbook with the option to deploy a [wide variety of open-source services](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md) to your server(s), including [docker-minecraft-server](https://github.com/XHawk87/ansible-role-minecraft), making it a good option if you want all the bells and whistles alongside your Minecraft server.
- Check out the [Installation Guide](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/README.md) for the MASH playbook to get started.
- You can then enable [Minecraft](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/minecraft.md) in your vars.yml.
- Enable any supporting services that you might find useful, such as [user authentication](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/authelia.md), [remote backups](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/backup-borg.md), [email relay](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/exim-relay.md), [cron monitoring](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/healthchecks.md), [audio and video conferencing](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/jitsi.md), databases ([MariaDB](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/mariadb.md), [PostgresSQL](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/postgres.md)), [push notifications](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/ntfy.md), [uptime monitoring](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/uptime-kuma.md), [a website](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/wordpress.md), as well as installing any [extra files, folders, applications, services and running commands](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/auxiliary.md) automatically on deployment.
## On CloudFormation (AWS)
If you're looking for a simple way to deploy this to the Amazon Web Services Cloud, check out the [Minecraft Server Deployment (CloudFormation) repository](https://github.com/vatertime/minecraft-spot-pricing). This repository contains a CloudFormation template that will get you up and running in AWS in a matter of minutes. Optionally it uses Spot Pricing so the server is very cheap, and you can easily turn it off when not in use.

View File

@@ -5,3 +5,34 @@ To troubleshoot just the command-line used to start the Minecraft server, set th
To troubleshoot any issues with memory allocation reported by the JVM, set the environment variable `DEBUG_MEMORY` to `true`.
If you are experiencing any issues with the "Changing ownership of /data" step, that can be disabled by setting `SKIP_CHOWN_DATA` to `true`.
To confirm the image version that has been pulled, use the following command, replacing `itzg/minecraft-server` as needed for specific image tags:
## Image labels
```shell
docker image inspect itzg/minecraft-server -f "{{json .Config.Labels}}"
```
such as
```json
{
"org.opencontainers.image.authors": "... <...@gmail.com>",
"org.opencontainers.image.created": "2025-04-03T02:15:51.405Z",
"org.opencontainers.image.description": "Docker image that provides a Minecraft Server for Java Edition that automatically downloads selected version at startup",
"org.opencontainers.image.licenses": "Apache-2.0",
"org.opencontainers.image.ref.name": "ubuntu",
"org.opencontainers.image.revision": "d6897a649ecbc16b5fb2e1500e24b64ef80270a0",
"org.opencontainers.image.source": "https://github.com/itzg/docker-minecraft-server",
"org.opencontainers.image.title": "docker-minecraft-server",
"org.opencontainers.image.url": "https://github.com/itzg/docker-minecraft-server",
"org.opencontainers.image.version": "java21"
}
```
The labels that are most interesting are:
- `org.opencontainers.image.created` : the date/time the image was built
- `org.opencontainers.image.revision` : which maps to <https://github.com/itzg/docker-minecraft-server/commit/REVISION>
- `org.opencontainers.image.version` : image tag and variant [as described in this page](../versions/java.md)

View File

@@ -1,7 +1,7 @@
mkdocs-material == 9.6.10
mkdocs-material == 9.6.14
mkdocs-autorefs == 1.4.1
mkdocstrings[python] == 0.29.1
mkdocs-literate-nav == 0.6.2
mdx-gh-links == 0.4
mkdocs-click == 0.8.1
mkdocs-click == 0.9.0
mkdocs-static-i18n == 1.3.0

View File

@@ -41,7 +41,17 @@ A specific loader or launcher version other than the latest can be requested usi
FABRIC_LOADER_VERSION: 0.13.1
```
!!! note
!!! note "Fabric API"
As [mentioned on the Fabric download page](https://fabricmc.net/use/installer/), most mods will require the Fabric API mod to be installed. That can be easily done by utilizing [the Modrinth downloads feature](../../mods-and-plugins/modrinth.md), such as adding this to the `environment` of a compose file service:
```yaml
TYPE: FABRIC
MODRINTH_PROJECTS: |
fabric-api
```
!!! note "Alternate launcher"
If you wish to use an alternative launcher you can:

View File

@@ -10,26 +10,29 @@ or explicitly include the tag, such as
where `<tag>` refers to the first column of this table:
| Tag | Java version | Linux | JVM Type | Architecture |
|------------------|--------------|--------|--------------------|---------------------|
| latest | 21 | Ubuntu | Hotspot | amd64, arm64 |
| stable | 21 | Ubuntu | Hotspot | amd64, arm64 |
| java23 | 23 | Ubuntu | Hotspot | amd64, arm64 |
| java23-graalvm | 23 | Oracle | Oracle GraalVM[^1] | amd64, arm64 |
| java21 | 21 | Ubuntu | Hotspot | amd64, arm64 |
| java21-jdk | 21 | Ubuntu | Hotspot+JDK | amd64, arm64 |
| java21-alpine | 21 | Alpine | Hotspot | amd64, arm64 |
| java21-graalvm | 21 | Oracle | Oracle GraalVM[^1] | amd64, arm64 |
| java17 | 17 | Ubuntu | Hotspot | amd64, arm64, armv7 |
| java17-graalvm | 17 | Oracle | Oracle GraalVM[^1] | amd64, arm64 |
| java17-alpine | 17 | Alpine | Hotspot | amd64 (1) |
| java11 | 11 | Ubuntu | Hotspot | amd64, arm64, armv7 |
| java8 | 8 | Ubuntu | Hotspot | amd64, arm64, armv7 |
| java8-jdk | 8 | Ubuntu | Hotspot+JDK | amd64 |
| java8-openj9 | 8 | Debian | OpenJ9 | amd64 |
| java8-graalvm-ce | 8 | Oracle | GraalVM CE | amd64 |
| Tag | Java version | Linux | JVM Type | Architecture | Note |
|------------------|--------------|--------|--------------------|---------------------|------|
| latest | 21 | Ubuntu | Hotspot | amd64, arm64 | |
| stable | 21 | Ubuntu | Hotspot | amd64, arm64 | |
| java24 | 24 | Ubuntu | Hotspot | amd64, arm64 | (2) |
| java24-graalvm | 24 | Oracle | Oracle GraalVM (3) | amd64, arm64 | (2) |
| java21 | 21 | Ubuntu | Hotspot | amd64, arm64 | |
| java21-jdk | 21 | Ubuntu | Hotspot+JDK | amd64, arm64 | |
| java21-alpine | 21 | Alpine | Hotspot | amd64, arm64 | |
| java21-graalvm | 21 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
| java17 | 17 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
| java17-graalvm | 17 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
| java17-alpine | 17 | Alpine | Hotspot | amd64 (1) | |
| java8 | 8 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
| java8-jdk | 8 | Ubuntu | Hotspot+JDK | amd64 | |
| java8-openj9 | 8 | Debian | OpenJ9 | amd64 | |
| java8-graalvm-ce | 8 | Oracle | GraalVM CE | amd64 | |
Notes
1. Why no arm64 for Java 17 Alpine? That is because the base images, such as [elipse-temurin](https://hub.docker.com/_/eclipse-temurin/tags?page=&page_size=&ordering=&name=17-jre-alpine) do not provide support for that. Use the Ubuntu based images instead.
2. Short-term variant, subject to deprecation upon next version introduction
3. Based on the [Oracle GraalMV images](https://blogs.oracle.com/java/post/new-oracle-graalvm-container-images), which as of JDK 17, are now under the [GraalVM Free License](https://blogs.oracle.com/java/post/graalvm-free-license) incorporating what used to be known as the GraalVM Enterprise.
!!! example "Example using java8"
@@ -123,17 +126,17 @@ Forge also doesn't support openj9 JVM implementation.
The following image tags have been deprecated and are no longer receiving updates:
- java19
- adopt13
- adopt14
- adopt15
- openj9-nightly
- multiarch-latest
- java11
- java16/java16-openj9
- java17-graalvm-ce
- java17-openj9
- java19
- java20-graalvm, java20, java20-alpine
- java23-*
- java8-multiarch is still built and pushed, but please move to java8 instead
- java8-alpine
[^1]: Based on the [Oracle GraalMV images](https://blogs.oracle.com/java/post/new-oracle-graalvm-container-images), which as of JDK 17, are now under the [GraalVM Free License](https://blogs.oracle.com/java/post/graalvm-free-license) incorporating what used to be known as the GraalVM Enterprise.

View File

@@ -16,19 +16,6 @@ services:
CF_API_KEY: ${CF_API_KEY}
CF_SLUG: craftoria
MEMORY: 8G
# TODO: replace with slugs and see if already excluded by cf-exclude-include.json
CF_EXCLUDE_MODS: |
737481
363363
394468
986380
844662
568563
915902
690971
455508
1089803
511319
volumes:
# Use managed volume by default, but can change to a relative path like
# ./data:/data

View File

@@ -7,6 +7,10 @@ services:
# VERSION: 1.21.4
# FABRIC_INSTALLER_VERSION: 1.0.1
# FABRIC_LOADER_VERSION: 0.16.10
# Since Fabric server type only includes the loader, most times
# the fabric-api is required for other mods to function
MODRINTH_PROJECTS: |
fabric-api
ports:
- "25565:25565"
volumes:

View File

@@ -12,6 +12,7 @@ services:
# Use Pack ID from https://www.feed-the-beast.com/modpacks/119-ftb-presents-direwolf20-120?tab=about
FTB_MODPACK_ID: "119"
# FTB_MODPACK_VERSION_ID: ""
MEMORY: 4G
volumes:
# use a named, managed volume for data volume
- data:/data

View File

@@ -25,11 +25,17 @@ use_proxy() {
}
use_server_list_ping() {
if [[ "${VERSION^^}" == "LATEST" || "${VERSION^^}" == "SNAPSHOT" ]]; then
# Don't use server-list ping for unknown version
return 1
fi
if versionLessThan 1.7; then
echo "--use-server-list-ping"
fi
}
mc_server_listening() {
mc-monitor status $(use_proxy) --host "${SERVER_HOST:-localhost}" --port "$SERVER_PORT" $(use_server_list_ping) --timeout 10s >&/dev/null
}

View File

@@ -11,6 +11,7 @@
"beehivetooltips",
"better-advancements",
"better-foliage",
"better-modlist-neoforge",
"better-placement",
"better-sprinting",
"better-third-person",
@@ -21,11 +22,13 @@
"block-drops-jei-addon",
"blur-forge",
"cartography",
"chattoggle",
"cherished-worlds",
"chunk-animator",
"clickable-advancements",
"compass-coords",
"configured",
"controllable",
"controlling",
"craftpresence",
"ctm",
@@ -35,6 +38,7 @@
"ding",
"drippy-loading-screen",
"dynamic-surroundings",
"dynamic-view",
"dynamiclights-reforged",
"easiervillagertrading",
"effective-forge",
@@ -42,18 +46,25 @@
"embeddium-extension",
"embeddium-extras",
"enchantment-descriptions",
"enhanced-boss-bars",
"enhancedvisuals",
"entity-collision-fps-fix",
"entity-model-features",
"entity-texture-features-fabric",
"entityculling",
"equipment-compare",
"essential-mod",
"euphoria-patches",
"extreme-sound-muffler",
"ezzoom",
"fading-night-vision",
"falling-leaves-forge",
"fancymenu",
"farsight",
"faster-ladder-climbing",
"flerovium",
"foamfix-optimization-mod",
"forgeskyboxes",
"fps-reducer",
"free-cam",
"ftb-backups-2",
@@ -61,6 +72,7 @@
"hwyla",
"iceberg",
"ignitioncoil",
"illager-raid-music",
"inmisaddon",
"iris-flywheel-compat",
"irisshaders",
@@ -76,8 +88,10 @@
"legendary-tooltips",
"lighty",
"loot-capacitor-tooltips",
"loot-journal",
"lootbeams",
"magnesium-extras",
"make-bubbles-pop",
"menumobs",
"minecraft-rich-presence",
"model-gap-fix",
@@ -93,7 +107,10 @@
"overloaded-armor-bar",
"packmenu",
"packmodemenu",
"particular",
"particular-reforged",
"reauth",
"rebind-narrator",
"reblured",
"reeses-sodium-options",
"reforgium",
@@ -105,9 +122,11 @@
"seamless-loading-screen",
"seamless-loading-screen-forge",
"searchables",
"seasonhud",
"shulkerboxviewer",
"skin-layers-3d",
"smart-hud",
"smithing-template-viewer",
"smooth-font",
"smoothwater",
"sodium",
@@ -115,9 +134,9 @@
"sodium-options-api",
"sodium-rubidium-occlusion-culling-fix",
"sound",
"sound-reloader",
"sound-filters",
"sound-physics-remastered",
"sound-reloader",
"stellar-sky",
"swingthroughgrass",
"textrues-embeddium-options",
@@ -131,6 +150,7 @@
"vanillafix",
"visuality",
"waila-harvestability",
"wakes-reforged",
"wawla",
"xaeroplus",
"yungs-menu-tweaks",
@@ -140,6 +160,9 @@
"all-of-fabric-6": {
"forceIncludes": ["revelationary"]
},
"beyond-depth": {
"forceIncludes": ["particular-reforged"]
},
"create-arcane-engineering": {
"forceIncludes": ["just-enough-resources-jer"]
},

View File

@@ -32,6 +32,7 @@ isDebugging && set -x
export HOME=/data
log "Running as uid=$(id -u) gid=$(id -g) with /data as '$(ls -lnd /data)'"
log "Image info: $(paste -d, -s /etc/image.properties)"
if [ ! -e /data/eula.txt ]; then
if ! isTrue "$EULA"; then

View File

@@ -9,35 +9,34 @@ isDebugging && set -x
resolveVersion
: "${MOHIST_BUILD:=lastSuccessfulBuild}"
mohistBaseUrl="https://mohistmc.com/api/v2/projects/mohist/"
mohistApiUrl="${mohistBaseUrl}${VERSION}/builds/"
# Docs at https://mohistmc.com/mohistmc-api
mohistApiUrl="https://api.mohistmc.com/project/mohist"
mohistDownloadsPage="https://mohistmc.com/downloadSoftware?project=mohist"
function logMohistAvailableVerisons(){
logError " check ${mohistBaseUrl} for available versions"
logError " and set VERSION accordingly"
}
if ! get --exists "${mohistApiUrl}"; then
if ! get --exists "${mohistApiUrl}/${VERSION}/builds"; then
logError "Mohist builds do not exist for ${VERSION}"
logMohistAvailableVerisons
logError " check ${mohistDownloadsPage} for available versions"
logError " and set VERSION accordingly"
exit 1
fi
if [[ "${MOHIST_BUILD}" == "lastSuccessfulBuild" ]]; then
# Get the latest build number from the API
buildNumber=$(
get --json-path '$.builds[-1].number' "${mohistApiUrl}"
)
if ! buildNumber=$(
get --json-path '$[0].id' "${mohistApiUrl}/${VERSION}/builds"
); then
logError "failed to list Mohist builds for ${VERSION}"
exit 1
fi
MOHIST_BUILD="${buildNumber}"
fi
downloadUrl=$(
get --json-path "$.builds[?(@.number==${MOHIST_BUILD})].url" "${mohistApiUrl}"
)
downloadUrl="${mohistApiUrl}/${VERSION}/builds/${MOHIST_BUILD}/download"
if [[ -z "${downloadUrl}" ]]; then
logError "Could not find build ${MOHIST_BUILD} for version ${VERSION}"
logMohistAvailableVerisons
logError " check ${mohistDownloadsPage} for available versions"
logError " and set VERSION accordingly"
exit 1
fi

View File

@@ -5,6 +5,9 @@
set -e
isDebugging && set -x
worldDownload=/data/tmp/world.zip
tmpWorldData=/data/tmp/world-data
# support absolute directories
if [[ "${LEVEL:-world}" =~ ^\/.*$ ]]; then
worldDest=${LEVEL}
@@ -26,24 +29,25 @@ if [[ "$WORLD" ]] && ( isTrue "${FORCE_WORLD_COPY}" || [ ! -d "$worldDest" ] );
if isURL "$WORLD"; then
log "Downloading world from $WORLD"
if ! get -o /tmp/world.bin "$WORLD"; then
mkdir -p /data/tmp
if ! get -o ${worldDownload} "$WORLD"; then
logError "Failed to download world from $WORLD"
exit 1
fi
WORLD=/tmp/world.bin
WORLD=${worldDownload}
fi
if [ -f "$WORLD" ]; then
log "Extracting world"
# Stage contents so that the correct subdirectory can be picked off
mkdir -p /tmp/world-data
if ! extract "$WORLD" /tmp/world-data; then
mkdir -p ${tmpWorldData}
if ! extract "$WORLD" ${tmpWorldData}; then
logError "Extracting world from $WORLD"
exit 1
fi
baseDirs=$(find /tmp/world-data -name "level.dat" -exec dirname "{}" \;)
baseDirs=$(find ${tmpWorldData} -name "level.dat" -exec dirname "{}" \;)
if ! [[ $baseDirs ]]; then
logError "World content is not valid since level.dat could not be found"
@@ -128,4 +132,7 @@ if [[ "$WORLD" ]] && ( isTrue "${FORCE_WORLD_COPY}" || [ ! -d "$worldDest" ] );
fi
fi
[[ -f ${worldDownload} ]] && rm ${worldDownload}
[[ -d ${tmpWorldData} ]] && rm -rf ${tmpWorldData}
exec "${SCRIPTS:-/}start-setupDatapack" "$@"

View File

@@ -6,10 +6,8 @@ services:
SETUP_ONLY: "TRUE"
MODPACK_PLATFORM: AUTO_CURSEFORGE
CF_API_KEY: ${CF_API_KEY}
CF_SLUG: the-pixelmon-modpack
CF_FILENAME_MATCHER: "9.1.2"
# Use the image bundled one to ensure latest is being tested
CF_EXCLUDE_INCLUDE_FILE: /image/cf-exclude-include.json
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/the-pixelmon-modpack/files/5954570
DEBUG: true
volumes:
- ./data:/data

View File

@@ -6,7 +6,7 @@ services:
EULA: "TRUE"
SETUP_ONLY: "TRUE"
TYPE: FABRIC
VERSION: 1.18.2
VERSION: 1.20.1
# Contains mix of Forge and Fabric mods
CURSEFORGE_FILES: |
https://www.curseforge.com/minecraft/mc-mods/clumps/files/4153343

View File

@@ -1 +1 @@
architectury-api@4.12.94
architectury-api@9.2.14

View File

@@ -47,6 +47,7 @@ setupOnlyMinecraftTest(){
status=PASSED
verify=
if ! logs=$(docker compose run --rm -e SETUP_ONLY=true -e DEBUG="${DEBUG:-false}" mc 2>&1); then
status=FAILED
outputContainerLog "$logs"
result=1
elif [ -f verify.sh ]; then