mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-17 07:03:57 +00:00
Compare commits
7 Commits
6894bcc0fb
...
f502acfbff
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f502acfbff | ||
|
|
d217e21903 | ||
|
|
dd5e2be036 | ||
|
|
b818a72e54 | ||
|
|
fe1cadcb0d | ||
|
|
ac125dc15e | ||
|
|
4c0fd104c6 |
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
@@ -17,7 +17,7 @@ on:
|
|||||||
- "compose-docs.yml"
|
- "compose-docs.yml"
|
||||||
- "zensical.toml"
|
- "zensical.toml"
|
||||||
- ".readthedocs.yaml"
|
- ".readthedocs.yaml"
|
||||||
- "renovate.json*"
|
- "renovate.json5"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@@ -138,7 +138,7 @@ jobs:
|
|||||||
uses: docker/setup-qemu-action@v3.7.0
|
uses: docker/setup-qemu-action@v3.7.0
|
||||||
|
|
||||||
- name: Build for test
|
- name: Build for test
|
||||||
uses: docker/build-push-action@v6.18.0
|
uses: docker/build-push-action@v6.19.2
|
||||||
with:
|
with:
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
tags: ${{ env.IMAGE_TO_TEST }}
|
tags: ${{ env.IMAGE_TO_TEST }}
|
||||||
@@ -178,7 +178,7 @@ jobs:
|
|||||||
password: ${{ github.token }}
|
password: ${{ github.token }}
|
||||||
|
|
||||||
- name: Build and push
|
- name: Build and push
|
||||||
uses: docker/build-push-action@v6.18.0
|
uses: docker/build-push-action@v6.19.2
|
||||||
if: github.actor == github.repository_owner
|
if: github.actor == github.repository_owner
|
||||||
with:
|
with:
|
||||||
platforms: ${{ matrix.platforms }}
|
platforms: ${{ matrix.platforms }}
|
||||||
|
|||||||
6
.github/workflows/verify-pr.yml
vendored
6
.github/workflows/verify-pr.yml
vendored
@@ -14,7 +14,7 @@ on:
|
|||||||
- "compose-docs.yml"
|
- "compose-docs.yml"
|
||||||
- "zensical.toml"
|
- "zensical.toml"
|
||||||
- ".readthedocs.yaml"
|
- ".readthedocs.yaml"
|
||||||
- "renovate.json*"
|
- "renovate.json5"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@@ -62,7 +62,7 @@ jobs:
|
|||||||
uses: docker/setup-buildx-action@v3.12.0
|
uses: docker/setup-buildx-action@v3.12.0
|
||||||
|
|
||||||
- name: Confirm multi-arch build
|
- name: Confirm multi-arch build
|
||||||
uses: docker/build-push-action@v6.18.0
|
uses: docker/build-push-action@v6.19.2
|
||||||
with:
|
with:
|
||||||
platforms: ${{ matrix.platforms }}
|
platforms: ${{ matrix.platforms }}
|
||||||
# ensure latest base image is used
|
# ensure latest base image is used
|
||||||
@@ -73,7 +73,7 @@ jobs:
|
|||||||
cache-from: type=gha,scope=${{ matrix.variant }}
|
cache-from: type=gha,scope=${{ matrix.variant }}
|
||||||
|
|
||||||
- name: Build for test
|
- name: Build for test
|
||||||
uses: docker/build-push-action@v6.18.0
|
uses: docker/build-push-action@v6.19.2
|
||||||
with:
|
with:
|
||||||
# Only build single platform since loading multi-arch image into daemon fails with
|
# Only build single platform since loading multi-arch image into daemon fails with
|
||||||
# "docker exporter does not currently support exporting manifest lists"
|
# "docker exporter does not currently support exporting manifest lists"
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
|||||||
--var version=${MC_SERVER_RUNNER_VERSION} --var app=mc-server-runner --file {{.app}} \
|
--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
|
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||||
|
|
||||||
# renovate: datasource=github-releases depName=itzg/mc-image-helper versioning=loose
|
# renovate: datasource=github-releases packageName=itzg/mc-image-helper versioning=loose
|
||||||
ARG MC_HELPER_VERSION=1.54.0
|
ARG MC_HELPER_VERSION=1.54.0
|
||||||
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
|
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
|
# used for cache busting local copy of mc-image-helper
|
||||||
|
|||||||
15
compose-dev.yml
Normal file
15
compose-dev.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
services:
|
||||||
|
mc-dev:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
environment:
|
||||||
|
EULA: true
|
||||||
|
volumes:
|
||||||
|
- ./scripts:/image/scripts:ro
|
||||||
|
- data:/data
|
||||||
|
ports:
|
||||||
|
- "25565:25565"
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
|
volumes:
|
||||||
|
data:
|
||||||
@@ -11,61 +11,15 @@ Adding a new server `TYPE` can vary due to the complexity of obtaining and confi
|
|||||||
|
|
||||||
## Iterative script development
|
## Iterative script development
|
||||||
|
|
||||||
Individual scripts can be iteratively developed, debugged, and tested using the following procedure.
|
The included `compose-dev.yml` will mount the local `scripts` code into the container and allow for iterative development. Replace `[-e key=value]` with any environment variables you wish to set for testing the modified scripts.
|
||||||
|
|
||||||
First, build a baseline of the image to include the packages needed by existing or new scripts:
|
|
||||||
|
|
||||||
PowerShell: (Example of building and testing ForgeAPI)
|
|
||||||
```powershell
|
|
||||||
$env:FOLDER_TO_TEST="forgeapimods_projectids"
|
|
||||||
$env:IMAGE_TO_TEST="mc-dev"
|
|
||||||
docker build -t $env:IMAGE_TO_TEST .
|
|
||||||
pushd "tests/setuponlytests/$env:FOLDER_TO_TEST/"
|
|
||||||
docker compose run mc
|
|
||||||
docker compose down -v --remove-orphans
|
|
||||||
popd
|
|
||||||
```
|
|
||||||
|
|
||||||
PowerShell: Building different images of Java for testing
|
|
||||||
```powershell
|
|
||||||
$env:BASE_IMAGE='eclipse-temurin:8u312-b07-jre'
|
|
||||||
$env:IMAGE_TO_TEST="mc-dev"
|
|
||||||
docker build --build-arg BASE_IMAGE=$env:BASE_IMAGE -t $env:IMAGE_TO_TEST .
|
|
||||||
```
|
|
||||||
|
|
||||||
Bash: (Example of building and testing ForgeAPI)
|
|
||||||
```bash
|
|
||||||
export FOLDER_TO_TEST="forgeapimods_file"
|
|
||||||
export IMAGE_TO_TEST="mc-dev"
|
|
||||||
docker build -t $IMAGE_TO_TEST .
|
|
||||||
pushd tests/setuponlytests/$FOLDER_TO_TEST/
|
|
||||||
docker compose run mc
|
|
||||||
docker compose down -v --remove-orphans
|
|
||||||
popd
|
|
||||||
```
|
|
||||||
|
|
||||||
Using the baseline image, an interactive container can be started to iteratively run the scripts to be developed. By attaching the current workspace directory, you can use the local editor of your choice to iteratively modify scripts while using the container to run them.
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker run -it --rm -v ${PWD}:/image/scripts --entrypoint bash mc-dev
|
docker compose -f compose-dev.yml run --rm -it [-e key=value] mc-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
From within the container you can run individual scripts via the attached `/image/scripts/` path; however, be sure to set any environment variables expected by the scripts by either `export`ing them manually:
|
!!! tip
|
||||||
|
|
||||||
```shell
|
To speed up the development cycle, it is recommended to set `SETUP_ONLY` to `true` as part of the run command above.
|
||||||
export VERSION=1.12.2
|
|
||||||
/image/scripts/start-deployFabric
|
|
||||||
```
|
|
||||||
|
|
||||||
...or pre-pending script execution:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
VERSION=1.12.2 /image/scripts/start-deployFabric
|
|
||||||
```
|
|
||||||
|
|
||||||
!!! note
|
|
||||||
|
|
||||||
You may want to temporarily add an `exit` statement near the end of your script to isolate execution to just the script you're developing.
|
|
||||||
|
|
||||||
## Using development copy of tools
|
## Using development copy of tools
|
||||||
|
|
||||||
|
|||||||
@@ -2,21 +2,21 @@ click==8.3.1
|
|||||||
colorama==0.4.6
|
colorama==0.4.6
|
||||||
deepmerge==2.0
|
deepmerge==2.0
|
||||||
ghp-import==2.1.0
|
ghp-import==2.1.0
|
||||||
griffe==1.15.0
|
griffe==2.0.0
|
||||||
Jinja2==3.1.6
|
Jinja2==3.1.6
|
||||||
Markdown==3.10.1
|
Markdown==3.10.2
|
||||||
MarkupSafe==3.0.3
|
MarkupSafe==3.0.3
|
||||||
mergedeep==1.3.4
|
mergedeep==1.3.4
|
||||||
mkdocs==1.6.1
|
mkdocs==1.6.1
|
||||||
mkdocs-autorefs==1.4.3
|
mkdocs-autorefs==1.4.4
|
||||||
mkdocs-get-deps==0.2.0
|
mkdocs-get-deps==0.2.0
|
||||||
mkdocstrings==1.0.3
|
mkdocstrings==1.0.3
|
||||||
mkdocstrings-python==2.0.1
|
mkdocstrings-python==2.0.2
|
||||||
packaging==26.0
|
packaging==26.0
|
||||||
pathspec==1.0.4
|
pathspec==1.0.4
|
||||||
platformdirs==4.5.1
|
platformdirs==4.9.2
|
||||||
Pygments==2.19.2
|
Pygments==2.19.2
|
||||||
pymdown-extensions==10.20.1
|
pymdown-extensions==10.21
|
||||||
python-dateutil==2.9.0.post0
|
python-dateutil==2.9.0.post0
|
||||||
PyYAML==6.0.3
|
PyYAML==6.0.3
|
||||||
pyyaml_env_tag==1.1
|
pyyaml_env_tag==1.1
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
"enabledManagers": [
|
"enabledManagers": [
|
||||||
"custom"
|
"custom.regex"
|
||||||
],
|
],
|
||||||
"customManagers": [
|
"customManagers": [
|
||||||
{
|
{
|
||||||
"customType": "regex",
|
"customType": "regex",
|
||||||
"managerFilePatterns": ["/^Dockerfile$/"],
|
"managerFilePatterns": ["/^Dockerfile$/"],
|
||||||
"matchStrings": [
|
"matchStrings": [
|
||||||
"# renovate: datasource=(?<datasource>[a-z-]+?)(?: packageName=(?<packageName>.+?))? (?: versioning=(?<versioning>[a-z-]+?))?\\s(?:ENV|ARG) .+?_VERSION=(?<currentValue>.+?)\\s"
|
"# renovate: datasource=(?<datasource>[a-z-]+?)(?: packageName=(?<packageName>.+?))?(?: versioning=(?<versioning>[a-z-]+))?\\s(?:ENV|ARG) .+?_VERSION=(?<currentValue>.+?)\\s"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
0
scripts/start-deployAutoCF
Normal file → Executable file
0
scripts/start-deployAutoCF
Normal file → Executable file
0
scripts/start-deployFolia
Normal file → Executable file
0
scripts/start-deployFolia
Normal file → Executable file
3
scripts/start-deployGTNH
Normal file → Executable file
3
scripts/start-deployGTNH
Normal file → Executable file
@@ -8,10 +8,11 @@ function getGTNHdownloadPath(){
|
|||||||
gtnh_download_path=""
|
gtnh_download_path=""
|
||||||
current_java_version=$(mc-image-helper java-release)
|
current_java_version=$(mc-image-helper java-release)
|
||||||
|
|
||||||
if ! mapfile -t packs < <(curl -sfL 'http://downloads.gtnewhorizons.com/ServerPacks/?raw'); then
|
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"
|
logError "Failed to retrieve data from http://downloads.gtnewhorizons.com/ServerPacks/?raw"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
mapfile -t packs <<< "$packs_data"
|
||||||
|
|
||||||
log "Start locating server files..."
|
log "Start locating server files..."
|
||||||
for pack in "${packs[@]}"; do
|
for pack in "${packs[@]}"; do
|
||||||
|
|||||||
0
scripts/start-deployLeaf
Normal file → Executable file
0
scripts/start-deployLeaf
Normal file → Executable file
0
scripts/start-deployModrinth
Normal file → Executable file
0
scripts/start-deployModrinth
Normal file → Executable file
0
scripts/start-deployNeoForge
Normal file → Executable file
0
scripts/start-deployNeoForge
Normal file → Executable file
0
scripts/start-deployPoseidon
Normal file → Executable file
0
scripts/start-deployPoseidon
Normal file → Executable file
0
scripts/start-rconcmds
Normal file → Executable file
0
scripts/start-rconcmds
Normal file → Executable file
0
scripts/start-setupRbac
Normal file → Executable file
0
scripts/start-setupRbac
Normal file → Executable file
Reference in New Issue
Block a user