Compare commits

..

18 Commits

Author SHA1 Message Date
dependabot[bot]
e7dc75f20c build(deps): bump docker/setup-buildx-action from 3.12.0 to 4.0.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.12.0 to 4.0.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.12.0...v4.0.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-09 08:42:17 +00:00
EmilyxFox
ddb3dbf776 add dockerfile_inline example to misc/building (#3963) 2026-03-07 18:40:17 -06:00
Geoff Bourne
1cf70665bb build: adjust RTD config to explicitly use docs/requirements.txt (#3964) 2026-03-07 14:08:54 -06:00
Geoff Bourne
a543ee7ebc Added NUMA library (#3962) 2026-03-07 08:54:18 -06:00
renovate[bot]
a69017b5e1 chore(deps): update dependency itzg/mc-server-runner to v1.14.2 (#3959) 2026-03-01 09:56:11 -06:00
Geoff Bourne
e3f715e9ca build: adjusted issues notify triage label setting (#3957) 2026-02-28 14:25:29 -06:00
renovate[bot]
1904798a75 chore(deps): update dependency itzg/mc-image-helper to v1.55.2 (#3956)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-28 08:47:00 -06:00
Caedis
7c2c0ded70 Switch GTNH pack version metadata url to new endpoint (#3955) 2026-02-27 08:08:04 -06:00
renovate[bot]
a62be28cfd chore(deps): update dependency itzg/mc-image-helper to v1.55.0 (#3953) 2026-02-26 07:10:00 -06:00
dependabot[bot]
6402e72fda build(deps): bump mkdocstrings-python from 2.0.2 to 2.0.3 in /docs in the patches group (#3952) 2026-02-23 08:08:22 -06:00
Geoff Bourne
8b2f26535d Refactor issue label workflow for Discord notifications (#3950) 2026-02-21 17:15:30 -06:00
Spencer
e202239e66 Update link to example compose file for HTTP Proxy config (#3949) 2026-02-19 18:35:16 -06:00
Geoff Bourne
4e4d6959e4 Bump latest to java 25 in images.json (#3948) 2026-02-16 16:08:58 -06:00
renovate[bot]
92f3200b4c chore(deps): update dependency itzg/restify to v1.7.12 (#3947) 2026-02-16 15:36:58 -06:00
renovate[bot]
02b8993561 chore(deps): update dependency itzg/mc-monitor to v0.16.1 (#3946)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-16 14:17:57 -06:00
Geoff Bourne
4466c778db Markup other dependencies in Dockerfile for Renovate (#3945) 2026-02-16 14:11:57 -06:00
renovate[bot]
f5616795bd chore(deps): update dependency itzg/mc-image-helper to v1.54.1 (#3944)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-16 13:43:20 -06:00
Geoff Bourne
a00062ba64 build: fix regex pattern that was bad in docs (#3943) 2026-02-16 13:34:05 -06:00
14 changed files with 121 additions and 48 deletions

1
.github/release.yml vendored
View File

@@ -2,6 +2,7 @@ changelog:
exclude:
authors:
- dependabot
- renovate
categories:
- title: Enhancements
labels:

View File

@@ -132,7 +132,7 @@ jobs:
org.opencontainers.image.authors=Geoff Bourne <itzgeoff@gmail.com>
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3.12.0
uses: docker/setup-buildx-action@v4.0.0
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.7.0

View File

@@ -1,33 +1,17 @@
name: Issue labels
name: Issues notify
on:
issues:
types: [labeled, reopened, closed, deleted]
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_ISSUES_WEBHOOK }}
types:
- opened
- labeled
- unlabeled
- closed
jobs:
labelNotify:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: notify on label
if: >
github.event.label.name == 'enhancement'
|| github.event.label.name == 'bug'
|| github.event.label.name == 'help wanted'
|| github.event.label.name == 'priority/high'
|| github.event.label.name == 'question'
|| github.event.label.name == 'status/waiting on upstream'
uses: Ilshidur/action-discord@master
with:
args: "[${{ github.event.issue.title }} (#${{ github.event.issue.number }})](<${{ github.event.issue.html_url }}>) added `${{ github.event.label.name }}` label"
- name: notify on action change
if: >
github.event.action == 'closed'
|| github.event.action == 'reopened'
|| github.event.action == 'deleted'
uses: Ilshidur/action-discord@master
with:
args: "[${{ github.event.issue.title }} (#${{ github.event.issue.number }})](<${{ github.event.issue.html_url }}>) has been `${{ github.event.action }}` by `${{ github.event.sender.login }}`"
notify:
uses: itzg/github-workflows/.github/workflows/issues-notify-discord.yml@main
with:
triageLabel: 'status/needs triage'
secrets:
discordWebhook: "${{secrets.DISCORD_ISSUES_WEBHOOK}}"

View File

@@ -59,7 +59,7 @@ jobs:
fetch-depth: 0
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3.12.0
uses: docker/setup-buildx-action@v4.0.0
- name: Confirm multi-arch build
uses: docker/build-push-action@v6.19.2

View File

@@ -1,19 +1,15 @@
version: 2
python:
install:
- requirements: docs/requirements.txt
build:
os: ubuntu-24.04
tools:
python: latest
python: "3.14"
jobs:
# We recommend using a requirements file for reproducible builds.
# This is just a quick example to get started.
# https://docs.readthedocs.io/page/guides/reproducible-builds.html
install:
- pip install zensical
- pip install -r docs/requirements.txt
build:
html:
- zensical build

View File

@@ -25,32 +25,37 @@ EXPOSE 25565
ARG APPS_REV=1
ARG GITHUB_BASEURL=https://github.com
# renovate: datasource=github-releases packageName=itzg/easy-add
ARG EASY_ADD_VERSION=0.8.11
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.11
# renovate: datasource=github-releases packageName=itzg/restify
ARG RESTIFY_VERSION=1.7.12
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
# renovate: datasource=github-releases packageName=itzg/rcon-cli
ARG RCON_CLI_VERSION=1.7.3
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.16.0
# renovate: datasource=github-releases packageName=itzg/mc-monitor
ARG MC_MONITOR_VERSION=0.16.1
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
ARG MC_SERVER_RUNNER_VERSION=1.14.1
# renovate: datasource=github-releases packageName=itzg/mc-server-runner
ARG MC_SERVER_RUNNER_VERSION=1.14.2
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
# renovate: datasource=github-releases packageName=itzg/mc-image-helper versioning=loose
ARG MC_HELPER_VERSION=1.54.0
ARG MC_HELPER_VERSION=1.55.2
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

View File

@@ -31,6 +31,7 @@ apk add --no-cache -U \
libpcap \
libwebp \
libcap \
numactl \
${EXTRA_ALPINE_PACKAGES}
# Download and install patched knockd

View File

@@ -27,6 +27,7 @@ apt-get install -y \
lbzip2 \
nfs-common \
libpcap0.8 \
libnuma1 \
${EXTRA_DEB_PACKAGES}
# Install Git LFS

View File

@@ -166,7 +166,7 @@ such as:
## HTTP Proxy
You may configure the use of an HTTP/HTTPS proxy by passing the proxy's "host:port" via the environment variable `PROXY`. In [the example compose file](https://github.com/itzg/docker-minecraft-server/blob/master/examples/docker-compose-proxied.yml) it references a Squid proxy. The host and port can be separately passed via the environment variables `PROXY_HOST` and `PROXY_PORT`. A `|` delimited list of hosts to exclude from proxying can be passed via `PROXY_NON_PROXY_HOSTS`.
You may configure the use of an HTTP/HTTPS proxy by passing the proxy's "host:port" via the environment variable `PROXY`. In [the example compose file](https://github.com/itzg/docker-minecraft-server/blob/master/examples/proxied/compose.yml) it references a Squid proxy. The host and port can be separately passed via the environment variables `PROXY_HOST` and `PROXY_PORT`. A `|` delimited list of hosts to exclude from proxying can be passed via `PROXY_NON_PROXY_HOSTS`.
## Using "noconsole" option

View File

@@ -1,4 +1,84 @@
## Simple image additions
You can easily build upon the base image using an inline Dockerfile.
```yaml title="compose.yaml"
services:
mc:
build:
context: .
dockerfile_inline: |
FROM itzg/minecraft-server:latest
RUN apt-get update && apt-get install -y \
webp \
&& rm -rf /var/lib/apt/lists/*
pull: true # Always pull new base image
pull_policy: build
restart: unless-stopped
environment:
EULA: true
ports:
- "25565:25565/tcp"
volumes:
- ./data:/data
```
Here is an example to add Nvidia GPU support for C2ME:
??? Example "C2ME GPU example"
```yaml title="compose.yaml"
services:
mc:
build:
context: .
dockerfile_inline: |
FROM itzg/minecraft-server:java25
# Install OpenCL loader and NVIDIA driver capabilities
RUN apt-get update && apt-get install -y \
ocl-icd-libopencl1 \
opencl-headers \
clinfo \
&& rm -rf /var/lib/apt/lists/*
# 1. Create the vendor directory
# 2. Tell OpenCL to use the NVIDIA library
RUN mkdir -p /etc/OpenCL/vendors && \
echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd
# Tell the NVIDIA container runtime to expose all GPU capabilities (including compute/utility)
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,graphics,video
COPY ./mods /mods
pull: true # Always pull new base image
pull_policy: build
restart: unless-stopped
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
environment:
EULA: true
TYPE: "FABRIC"
VERSION: 1.21.10
MEMORY: 8G
MODRINTH_PROJECTS: |-
fabric-api
c2me
ports:
- "25565:25565/tcp"
volumes:
- ./data:/data
```
!!! tip "For advanced use only"
This page describes a capability that is not applicable to most users. It is only intended for rare cases when a very specific Java base image is needed or additional packages need to be installed that are not generally applicable or would bloat the image size.

View File

@@ -11,7 +11,7 @@ mkdocs==1.6.1
mkdocs-autorefs==1.4.4
mkdocs-get-deps==0.2.0
mkdocstrings==1.0.3
mkdocstrings-python==2.0.2
mkdocstrings-python==2.0.3
packaging==26.0
pathspec==1.0.4
platformdirs==4.9.2
@@ -22,4 +22,4 @@ PyYAML==6.0.3
pyyaml_env_tag==1.1
six==1.17.0
watchdog==6.0.0
# zensical @ file:///
zensical==0.0.24

View File

@@ -2,7 +2,7 @@
{
"tag": "latest",
"notes": "Always tracks the most recent commit on the main branch",
"java": "21",
"java": "25",
"distribution": "ubuntu",
"jvm": "hotspot",
"architectures": ["amd64", "arm64"],
@@ -141,4 +141,5 @@
{"tag": "java8-jdk", "deprecated": true},
{"tag": "java8-openj9", "deprecated": true},
{"tag": "java8-graalvm-ce", "deprecated": true}
]
]

View File

@@ -11,5 +11,6 @@
"# renovate: datasource=(?<datasource>[a-z-]+?)(?: packageName=(?<packageName>.+?))?(?: versioning=(?<versioning>[a-z-]+))?\\s(?:ENV|ARG) .+?_VERSION=(?<currentValue>.+?)\\s"
]
}
]
],
"labels": ["dependencies"]
}

View File

@@ -8,8 +8,11 @@ function getGTNHdownloadPath(){
gtnh_download_path=""
current_java_version=$(mc-image-helper java-release)
if ! packs_data="$(restify --tag=a https://www.gtnewhorizons.com/version-history/ | jq -r '.[].href | select(test("Server"))')"; then
logError "Failed to retrieve data from http://downloads.gtnewhorizons.com/ServerPacks/?raw"
if ! packs_data="$(
curl -fsSL "https://downloads.gtnewhorizons.com/versions.json" \
| jq -r '.versions[]?.server? | .[]? | select(type=="string" and test("Server"))'
)"; then
logError "Failed to retrieve data from https://downloads.gtnewhorizons.com/versions.json"
exit 1
fi
mapfile -t packs <<< "$packs_data"