Compare commits

...

355 Commits

Author SHA1 Message Date
Geoff Bourne
6f95fa6175 Auto-merging via docker-versions-create 2021-09-15 21:06:58 -05:00
Geoff Bourne
1f2f33d6c0 Merge branch 'master' of github.com:itzg/docker-minecraft-server 2021-09-15 21:02:05 -05:00
Geoff Bourne
1a3c454d7f Added ping
#891 #1041
2021-09-15 20:53:44 -05:00
itzg
fa11d313fb docs: Auto update markdown TOC 2021-09-16 01:45:45 +00:00
Geoff Bourne
20bc2a97d9 docs: fixed java version example 2021-09-15 20:45:27 -05:00
Geoff Bourne
6f16da8309 Auto-merging via docker-versions-create 2021-09-15 20:37:01 -05:00
dependabot[bot]
0cd49c4c81 build(deps): bump stefanzweifel/git-auto-commit-action (#1042) 2021-09-13 06:55:47 -05:00
Geoff Bourne
6c1cd2537d misc: created FUNDING.yml 2021-09-12 21:02:13 -05:00
brutalgg
cf31f24752 docs: Add RLCraft example (#1036) 2021-09-10 10:26:19 -05:00
itzg
27523a1c45 docs: Auto update markdown TOC 2021-09-06 15:53:03 +00:00
Geoff Bourne
e1d0fe6b92 docs: added world data diagram to README 2021-09-06 10:52:44 -05:00
itzg
d3f4a4991e docs: Auto update markdown TOC 2021-09-05 19:11:45 +00:00
Geoff Bourne
296ddbdec5 docs: described unicode conversion for MOTD 2021-09-05 14:11:26 -05:00
Geoff Bourne
f7cd34b8d8 Added unicode conversion for MOTD
#1025
2021-09-04 19:46:18 -05:00
itzg
7bafffbd06 docs: Auto update markdown TOC 2021-09-04 16:04:43 +00:00
Geoff Bourne
201ec3be5a docs: added SETUP_ONLY 2021-09-04 11:04:23 -05:00
itzg
7d1d5af097 docs: Auto update markdown TOC 2021-09-03 21:51:18 +00:00
Geoff Bourne
f9ce5bce4d docs: fixed heading level of timezone config 2021-09-03 16:51:00 -05:00
itzg
748768c771 docs: Auto update markdown TOC 2021-09-02 02:21:29 +00:00
Ross Holmberg
f307077636 Typo (#1027) 2021-09-01 21:21:11 -05:00
Geoff Bourne
8cee8d5618 Auto-merging via docker-versions-create 2021-08-30 21:37:26 -05:00
Geoff Bourne
179cd878a9 Added error check on download of GENERIC_PACK
#1017
2021-08-30 21:31:06 -05:00
Geoff Bourne
788548d1f4 misc: upgraded mc-server-runner to 1.7.0 2021-08-30 21:17:48 -05:00
Geoff Bourne
0ae15c2b3c Fixed binding address of Limbo server
#994
2021-08-29 17:11:29 -05:00
itzg
b5b4257032 docs: Auto update markdown TOC 2021-08-29 21:26:47 +00:00
Daniel Ramp
657db124b2 docs: generator_settings json for 1.13+ (#1020) 2021-08-29 16:26:35 -05:00
dependabot[bot]
f5ea43b3d3 build(deps): bump docker/build-push-action from 2.6.1 to 2.7.0 (#1011) 2021-08-23 07:27:58 -05:00
itzg
01747510d5 docs: Auto update markdown TOC 2021-08-21 18:52:25 +00:00
Geoff Bourne
ff8b160a2b docs: added troubleshooting section 2021-08-21 13:52:25 -05:00
itzg
28b7afda15 docs: Auto update markdown TOC 2021-08-15 17:44:45 +00:00
Geoff Bourne
ecd253dd3e Added support for TYPE=LIMBO (#994) 2021-08-15 12:44:31 -05:00
Geoff Bourne
8b76b5776a Auto-merging via docker-versions-create 2021-08-10 12:56:12 -05:00
Chris Fowles
8d0dbcd50e Detect and download FTB ARM installer (#995)
Co-authored-by: Chris Fowles <chris.fowles@plenti.com.au>
2021-08-10 12:53:01 -05:00
Geoff Bourne
e3af06d2e4 Auto-merging via docker-versions-create 2021-08-01 12:12:49 -05:00
itzg
327f21f1bb docs: Auto update markdown TOC 2021-08-01 17:09:37 +00:00
Geoff Bourne
c96d6b2958 Added support for STOP_SERVER_ANNOUNCE_DELAY 2021-08-01 12:09:18 -05:00
Geoff Bourne
0ac583514c Auto-merging via docker-versions-create 2021-07-31 09:27:29 -05:00
itzg
da8fb37317 docs: Auto update markdown TOC 2021-07-31 14:24:59 +00:00
Geoff Bourne
4d7e29cb3a Corrected support for Magma dev channel forge-based installer 2021-07-31 09:24:38 -05:00
Geoff Bourne
bf3f15f5fb Auto-merging via docker-versions-create 2021-07-26 19:35:26 -05:00
itzg
17099320e9 docs: Auto update markdown TOC 2021-07-27 00:33:11 +00:00
Geoff Bourne
f3dbb4dd2d Added support for Magma dev channel downloads 2021-07-26 19:32:26 -05:00
Geoff Bourne
4aec2322b5 Merge branch 'master' into java8-openj9 2021-07-25 18:20:13 -05:00
Geoff Bourne
b3b3cdde08 Don't warn about Forge on Java 8 for 1.17+ 2021-07-25 09:50:40 -05:00
Geoff Bourne
51b2eb6851 Auto-merging via docker-versions-create 2021-07-25 09:36:44 -05:00
itzg
b8cd510a0e docs: Auto update markdown TOC 2021-07-24 21:26:28 +00:00
Geoff Bourne
0d5eb2ea9e docs: fixed heading depth
#988
2021-07-24 16:26:09 -05:00
Geoff Bourne
846050f41a Auto-merging via docker-versions-create 2021-07-23 21:27:37 -05:00
Geoff Bourne
2b0fd2e5c0 Added support for Forge 1.17's run.sh mechanism
#986
2021-07-23 21:17:05 -05:00
Jawa_Juice
4168821ec4 Reflect different jar names for airplane/airplanepurpur (#985) 2021-07-21 10:16:05 -05:00
itzg
6353488db7 docs: Auto update markdown TOC 2021-07-18 21:20:49 +00:00
Geoff Bourne
b446d4cc3f docs: added recommendation of management layer 2021-07-18 16:19:57 -05:00
Geoff Bourne
485ec6a141 Auto-merging via docker-versions-create 2021-07-17 21:14:44 -05:00
Geoff Bourne
16b2762025 Removed extra quotes in spiget log when resource already new enough 2021-07-17 21:11:21 -05:00
Geoff Bourne
0096e41882 Auto-merging via docker-versions-create 2021-07-17 20:57:29 -05:00
Daniel Ramp
c5a3e2e376 Cache spiget version resolution (#978) 2021-07-17 18:44:18 -05:00
Geoff Bourne
d45610723a Auto-merging via docker-versions-create 2021-07-17 18:03:56 -05:00
Geoff Bourne
5018298c81 Fixed log for existing spiget resource
#981
2021-07-17 17:57:15 -05:00
Geoff Bourne
37b81aa0be Fixed issue with unset FORCE_REDOWNLOAD with TYPE=AIRPLANE
#979
2021-07-16 07:26:49 -05:00
Jawa_Juice
6a3a0465a4 Move to Pl3x DL API V2 (#977) 2021-07-15 16:51:18 -05:00
itzg
34d67d6018 docs: Auto update markdown TOC 2021-07-15 13:34:00 +00:00
Geoff Bourne
9c4403d7ff docs: corrected compose snippets within README 2021-07-15 08:33:43 -05:00
Geoff Bourne
072704b54d Auto-merging via docker-versions-create 2021-07-14 18:43:15 -05:00
Daniel Ramp
3c0566cb87 fix: SPIGET_RESOURCES not always download (#975)
implemented to only re-download SPIGET resources with REMOVE_OLD_MODS enabled

fixes #974 partially
2021-07-14 18:42:34 -05:00
Geoff Bourne
0f08e88c5b Auto-merging via docker-versions-create 2021-07-12 19:09:42 -05:00
itzg
4357066cdf docs: Auto update markdown TOC 2021-07-13 00:03:34 +00:00
Jawa_Juice
67ca9a7fc4 Update Airplane branches for 1.17 release (#968)
* Update branches for official 1.17/1.17.1 releases

* Reflect Airplane 1.17 release
2021-07-12 19:03:17 -05:00
itzg
9c9c295a79 docs: Auto update markdown TOC 2021-07-12 14:24:37 +00:00
silence_eternal
daa3292000 docs: Update README with watchdog disable for autopause (#967) 2021-07-12 09:24:20 -05:00
itzg
2da5e2b2ec docs: Auto update markdown TOC 2021-07-11 18:28:34 +00:00
Geoff Bourne
c5119ad27b docs: Clarified docker attach usage with interactive, color console 2021-07-11 13:28:17 -05:00
Geoff Bourne
4808507da8 Simplified and improved multi-version handling for Fabric
#964
2021-07-10 14:56:10 -05:00
Geoff Bourne
89604c8d13 Auto-merging via docker-versions-create 2021-07-09 19:58:27 -05:00
Geoff Bourne
11a286fe26 Bukkit/Spigot download URL switched by VERSION
#962
2021-07-09 19:55:46 -05:00
Geoff Bourne
58842d444b Auto-merging via docker-versions-create 2021-07-08 17:59:28 -05:00
Bram Ceulemans
ca80b4730f Update start-deployAirplane (#960) 2021-07-08 17:56:06 -05:00
Geoff Bourne
457d09e14d Auto-merging via docker-versions-create 2021-07-08 08:03:47 -05:00
Geoff Bourne
80a8ce8a46 ci: removed merge-variants workflow since GHA won't trigger branch builds 2021-07-08 08:01:43 -05:00
itzg
7210e81f47 Auto-merging via docker-versions-create 2021-07-08 12:56:00 +00:00
Geoff Bourne
d804323cab Updated getbukkit download URL
#958
2021-07-08 07:55:31 -05:00
Geoff Bourne
ba86534e6e Auto-merging via docker-versions-create 2021-07-08 07:38:39 -05:00
Pascal Sthamer
cbaef446ac fix: don't echo double-double-quotes to server.properties (#954)
Using `sed`, we need to escape double quotes, but with `echo` we can just use the variable as-is.
Closes #949
2021-07-07 09:56:16 -05:00
NyCode
8aa1312ae2 Fix typo: tunity -> tuinity (#951) 2021-07-06 07:22:01 -05:00
dependabot[bot]
7ec09fcfe9 build(deps): bump docker/build-push-action from 2.5.0 to 2.6.1 (#950) 2021-07-05 07:09:06 -05:00
itzg
44bafbff09 Auto-merging via docker-versions-create 2021-07-04 19:54:01 +00:00
itzg
c090095e08 docs: Auto update markdown TOC 2021-07-04 19:53:56 +00:00
Geoff Bourne
f24bc00eb9 docs: link to data directory section from level / world save name section 2021-07-04 14:53:36 -05:00
Geoff Bourne
75c51bf0c7 Merge branch 'master' into java8-openj9 2021-07-03 14:19:04 -05:00
Geoff Bourne
f91ee5d245 ci: fixed publishing of latest image for master branch only
#946
2021-07-03 14:16:10 -05:00
Geoff Bourne
cf651f2279 ci: restored limited image platforms for java8-openj9 2021-07-02 16:23:42 -05:00
Geoff Bourne
6d0d7fe19c ci: auto-merge from master 2021-07-02 15:56:54 -05:00
Geoff Bourne
dd6700e659 ci: removed branch name qualifier in gha caching 2021-07-02 15:46:40 -05:00
itzg
bb58d7a4c9 Auto-merging via docker-versions-create 2021-07-02 16:55:54 +00:00
Austin Keller
ca8a27babe Fix unquoted COPY_MODS_DEST and COPY_CONFIG_DEST variables (#942) 2021-07-02 11:55:34 -05:00
itzg
6efaac2861 Auto-merging via docker-versions-create 2021-06-28 12:14:05 +00:00
itzg
19cc894662 docs: Auto update markdown TOC 2021-06-28 12:13:58 +00:00
Audition-CSBlock
15320f0eb2 improve readme (#939) 2021-06-28 07:13:40 -05:00
itzg
806342d74b Auto-merging via docker-versions-create 2021-06-27 13:13:11 +00:00
itzg
af758af51a docs: Auto update markdown TOC 2021-06-27 13:13:05 +00:00
Pascal Sthamer
9d231801da Allow to enable the whitelist without modifying the whitelist file (#937) 2021-06-27 08:12:51 -05:00
itzg
926e302595 Auto-merging via docker-versions-create 2021-06-24 12:47:05 +00:00
itzg
33c2154a98 docs: Auto update markdown TOC 2021-06-24 12:47:02 +00:00
Jawa_Juice
f890b316da Correct AirplanePurpur branch name (#936) 2021-06-24 07:46:40 -05:00
Geoff Bourne
10e85140ad Auto-merging via docker-versions-create 2021-06-23 22:33:45 -05:00
itzg
2e4cf0b731 docs: Auto update markdown TOC 2021-06-24 03:30:11 +00:00
Jawa_Juice
f5a319b0b3 Move to new Airplane download system (#933)
Co-authored-by: Jawa-Juice <Jawa-Juice@users.noreply.github.com>
2021-06-23 22:29:58 -05:00
Geoff Bourne
2533d2c694 ci: merge-variants: revert previous change 2021-06-23 22:29:24 -05:00
Geoff Bourne
b1fed81821 ci: merge-variants: skip any workflow changes 2021-06-23 22:24:12 -05:00
Geoff Bourne
0064c0357f ci: merge-variants: fetch all history and batch mode 2021-06-23 22:11:41 -05:00
Geoff Bourne
20cd8cce1d ci: fixed typo in calling docker-versions-create.sh 2021-06-23 22:07:32 -05:00
Geoff Bourne
bc8af2784f ci: added merge-variants workflow 2021-06-23 21:57:32 -05:00
Geoff Bourne
e300810a16 ci: fixed repo name in workflows conditional 2021-06-23 21:20:37 -05:00
Geoff Bourne
33b48a8a4b ci: used ${{ }} syntax in job conditional 2021-06-23 21:09:20 -05:00
Geoff Bourne
6f2f1174e6 ci: limited build-multiarch workflow to itzg's 2021-06-23 21:07:22 -05:00
Geoff Bourne
adbe75ae7e ci: limits generate-toc workflow to itzg's 2021-06-23 21:06:29 -05:00
itzg
dae2add713 docs: Auto update markdown TOC 2021-06-22 23:39:21 +00:00
Christoph Mittermaier
38946fd294 fixed typo in readme (#932) 2021-06-22 18:39:05 -05:00
Geoff Bourne
fc2ed9e612 Auto-merging via docker-versions-create 2021-06-20 12:48:15 -05:00
Duncan X Simpson
047ef107ae Modify start-deployFTBA to allow Fabric FTB packs (#926)
Fixes #912

Co-authored-by: Duncan X Simpson <duncan@k7dxs.net>
2021-06-20 12:27:18 -05:00
basisbit
1bb2f92f5b Workaround: Change default RELEASE of Yatopia (#922) 2021-06-16 07:34:38 -05:00
itzg
727a1f29d1 docs: Auto update markdown TOC 2021-06-09 12:35:19 +00:00
Jawa_Juice
012bd3a307 Support Java versions above 11 for Airplane (#917) 2021-06-09 07:35:00 -05:00
itzg
ae5b19b0aa docs: Auto update markdown TOC 2021-06-07 01:38:43 +00:00
Jawa_Juice
81d9c55eee Reflect Pupur's removal of Airplane patches (#910) 2021-06-06 20:38:29 -05:00
Geoff Bourne
edfe58079a Auto-merging via docker-versions-create 2021-06-05 17:51:25 -05:00
Erik Selberg
90cfe0e151 fix bad find statement in CurseForge handling (#901)
Co-authored-by: Erik Selberg <erik.selberg@grabtaxi.com>
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2021-06-05 17:46:59 -05:00
dependabot[bot]
491800280c build(deps): bump docker/build-push-action from 2.4.0 to 2.5.0 (#904) 2021-06-01 12:33:42 -05:00
dependabot[bot]
d60c2e0815 build(deps): bump actions/cache from 2.1.5 to 2.1.6 (#903) 2021-05-31 08:03:12 -05:00
dependabot[bot]
fb0babe261 build(deps): bump docker/setup-qemu-action from 1.1.0 to 1.2.0 (#902) 2021-05-31 08:02:39 -05:00
Niek Candaele
e6bc8abdc1 fix: update Sky Factory version link (#898) 2021-05-27 07:41:05 -05:00
Geoff Bourne
d423cc3b8d Auto-merging via docker-versions-create 2021-05-24 20:50:52 -05:00
tonymmm1
fbee644b4e Fix Forge download (#890) 2021-05-24 20:47:51 -05:00
Geoff Bourne
aaf327b308 Added SETUP_ONLY option
#878
2021-05-23 12:39:21 -05:00
itzg
d404e0f50e docs: Auto update markdown TOC 2021-05-23 17:29:03 +00:00
Geoff Bourne
c5bb83c6d0 ci: deprecated java15 since java16 is now primary 2021-05-23 12:28:42 -05:00
Geoff Bourne
1537e48e29 Merge branch 'master' into java8-openj9 2021-05-23 12:26:56 -05:00
Geoff Bourne
8bf3b64831 ci: changed build flavor latest=true 2021-05-23 12:24:13 -05:00
Geoff Bourne
62473771dc Merge from master 2021-05-22 13:00:01 -05:00
Geoff Bourne
9ff04f8637 ci: auto 'latest' tag on master 2021-05-22 10:48:44 -05:00
itzg
dd7953ab4c docs: Auto update markdown TOC 2021-05-22 13:59:05 +00:00
Geoff Bourne
23fde3387a docs: group related mods and worlds sections 2021-05-22 08:58:42 -05:00
Geoff Bourne
c4528e8f79 Auto-merging via docker-versions-create 2021-05-21 23:02:00 -05:00
Geoff Bourne
ecbdb2b18d ci: use flavor config in docker meta 2021-05-21 23:00:27 -05:00
Geoff Bourne
0f797487ab Auto-merging via docker-versions-create 2021-05-21 22:48:32 -05:00
itzg
373921777a docs: Auto update markdown TOC 2021-05-22 03:44:27 +00:00
Geoff Bourne
2f489b04ae docs: replaced openj9-11 with java11-openj9 2021-05-21 22:40:29 -05:00
Geoff Bourne
9511e3cc80 Merge branch 'master' into java8-openj9 2021-05-21 22:35:00 -05:00
Geoff Bourne
a2c393ccc5 docs: added java8-openj9 in place of openj9 image tag 2021-05-21 22:34:45 -05:00
Geoff Bourne
3aa4dd6c85 ci: added java8-openj9 branch 2021-05-21 22:31:40 -05:00
itzg
73a11c91d2 docs: Auto update markdown TOC 2021-05-22 03:28:50 +00:00
Geoff Bourne
8673f919fd docs: adjusted image version mentioned for RaspberryPi 2021-05-21 22:28:32 -05:00
Geoff Bourne
1e32161652 ci: fixed pr test builds for buildkit 2021-05-21 22:24:31 -05:00
itzg
38eb769c1b docs: Auto update markdown TOC 2021-05-22 03:12:47 +00:00
Geoff Bourne
5e372ed9f4 docs: added java11 tag to README 2021-05-21 22:12:29 -05:00
Geoff Bourne
e027a81317 ci: add java11 to build/merge 2021-05-21 22:05:59 -05:00
itzg
0a51713bd7 docs: Auto update markdown TOC 2021-05-22 03:05:38 +00:00
FW
d5cde03db1 Update Mohist URLs (#887) 2021-05-21 22:05:22 -05:00
Geoff Bourne
27571999b2 Merge branch 'master' into java8-multiarch 2021-05-21 17:28:44 -05:00
Geoff Bourne
449f2bfa09 ci: adjusted multiarch build for java8-multiarch 2021-05-21 17:28:25 -05:00
Geoff Bourne
bbd7d9e39a ci: introduced CACHE_NAME 2021-05-21 17:26:42 -05:00
Geoff Bourne
c9815e2ccb ci: use CACHE_NAME in main.yml 2021-05-21 17:20:35 -05:00
itzg
9bd6bc64b0 docs: Auto update markdown TOC 2021-05-21 22:01:17 +00:00
Geoff Bourne
a5fe016854 docs: added edge tag to image versions section 2021-05-21 17:00:58 -05:00
itzg
93cd299c77 docs: Auto update markdown TOC 2021-05-21 21:59:13 +00:00
Geoff Bourne
e8f8d8b4d4 ci: introduced CACHE_NAME 2021-05-21 16:58:52 -05:00
Geoff Bourne
b806ea6871 docs: adoptopenjdk:16-openj9 is only available on amd64
#885
2021-05-21 16:53:22 -05:00
Geoff Bourne
cb17180dea ci: updated build action for java16-openj9
#885
2021-05-21 16:45:33 -05:00
Geoff Bourne
78ec4ba2a7 ci: multiarch build reference master branch 2021-05-21 07:59:04 -05:00
Geoff Bourne
317104de30 ci: fixed multiarch 'master' branch trigger 2021-05-21 07:46:58 -05:00
itzg
63412975c3 docs: Auto update markdown TOC 2021-05-21 12:45:51 +00:00
Geoff Bourne
9c87f8749d docs: updated README for latest=16 2021-05-21 07:40:46 -05:00
Geoff Bourne
5fc36516f4 ci: switch 'latest/master' build to multiarch 2021-05-21 07:39:59 -05:00
Geoff Bourne
c608c8a57e Merge branch 'master' into java16 2021-05-21 07:31:12 -05:00
Geoff Bourne
853a9884d7 ci: force apk update 2021-05-21 06:57:19 -05:00
Geoff Bourne
ecafaf4ea1 ci: force rebuild of latest 2021-05-21 06:51:17 -05:00
Geoff Bourne
eb490e92c3 ci: force rebuild of latest 2021-05-21 06:50:04 -05:00
Geoff Bourne
98c7e43927 ci: prefixed TOC commit message 2021-05-19 20:47:48 -05:00
Geoff Bourne
d8786d4785 Auto-merging via docker-versions-create 2021-05-19 20:31:17 -05:00
Geoff Bourne
ef6f308229 Auto-merging via docker-versions-create 2021-05-19 20:27:42 -05:00
Geoff Bourne
02181021ce ci: avoid mix of tags and tags-ignore 2021-05-19 20:26:28 -05:00
Geoff Bourne
49d89d3e73 Auto-merging via docker-versions-create 2021-05-19 20:25:00 -05:00
Geoff Bourne
fa60f8c16e ci: exclude java8 from multiarch builds 2021-05-19 20:23:12 -05:00
itzg
3084a2f409 Auto update markdown TOC 2021-05-20 01:17:12 +00:00
Stealthii
f473cfc6f2 Add support for Canyon server for b1.7.3 (#879) 2021-05-19 20:16:57 -05:00
Geoff Bourne
8a34aa5c45 Auto-merging via docker-versions-create 2021-05-15 12:43:57 -05:00
Geoff Bourne
74203b23f4 Auto-merging via docker-versions-create 2021-05-15 12:41:22 -05:00
Geoff Bourne
cc204c297f Fixed REMOVE_OLD_MODS with SPIGET_RESOURCES
#834
2021-05-15 12:39:48 -05:00
Geoff Bourne
bb210ff59e Merge branch 'multiarch' into java16
# Conflicts:
#	.github/workflows/build-multiarch.yml
#	Dockerfile
2021-05-14 18:04:56 -05:00
Geoff Bourne
4fb791b490 Merge branch 'multiarch' into java8-multiarch
# Conflicts:
#	Dockerfile
#	start-configuration
2021-05-14 17:59:49 -05:00
Geoff Bourne
671e84bec9 ci: use docker/metadata-action 2021-05-14 17:48:17 -05:00
Geoff Bourne
fc2ba2df32 Merge branch 'master' into multiarch 2021-05-14 17:37:30 -05:00
dependabot[bot]
e5bee8e79b build(deps): bump docker/build-push-action from 2 to 2.4.0 (#866)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2 to 2.4.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2...v2.4.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-14 17:18:58 -05:00
Geoff Bourne
1b13ddcf32 Added start-server.sh as detected CurseForge entry script 2021-05-14 17:17:07 -05:00
itzg
de707049d4 Auto update markdown TOC 2021-05-14 13:06:27 +00:00
Giles Knap
e95ae2dbbb fix helm chart links (#873) 2021-05-14 08:06:08 -05:00
itzg
4606c27cdc Auto update markdown TOC 2021-05-14 03:52:02 +00:00
W4ff1e
ba88bf72ce Updated examples to version 3.8 (#872) 2021-05-13 22:51:47 -05:00
dependabot[bot]
75967cec02 build(deps): bump actions/cache from 2 to 2.1.5 (#870) 2021-05-14 01:47:19 +00:00
dependabot[bot]
0a35f661bd build(deps): bump actions/checkout from 2.2.0 to 2.3.4 (#869) 2021-05-14 01:45:43 +00:00
dependabot[bot]
f141806fb4 build(deps): bump stefanzweifel/git-auto-commit-action from 4 to 4.11.0 (#868) 2021-05-14 01:39:04 +00:00
dependabot[bot]
d80f40075c build(deps): bump docker/setup-qemu-action from 1 to 1.1.0 (#867) 2021-05-13 02:10:17 +00:00
itzg
44dbe80096 Auto update markdown TOC 2021-05-13 01:59:18 +00:00
Geoff Bourne
c7546ef08a docs: Clarified the default type and version of Minecraft server
#863
2021-05-12 20:59:02 -05:00
itzg
6fe5bb4aa8 Auto update markdown TOC 2021-05-13 01:41:49 +00:00
Geoff Bourne
589a9aa3db Added support for directories in MODS
#871
2021-05-12 20:41:28 -05:00
Geoff Bourne
2c8d1a9255 Merge branch 'master' into java16 2021-05-12 11:33:39 -05:00
Geoff Bourne
a8c11c0cdb Add java16 branch/image-tag
#864
2021-05-12 11:32:40 -05:00
itzg
34ae93f379 Auto update markdown TOC 2021-05-12 16:29:05 +00:00
Geoff Bourne
bd57d291c1 ci: Preparing for java16 image tag
#864
2021-05-12 11:28:44 -05:00
Geoff Bourne
7310daf51d Auto-merging via docker-versions-create 2021-05-06 20:17:59 -05:00
Geoff Bourne
78d9d888db Auto-merging via docker-versions-create 2021-05-06 20:16:34 -05:00
Geoff Bourne
ced25ad50a Auto-merging via docker-versions-create 2021-05-06 20:12:55 -05:00
itzg
bccdc7f5e8 Auto update markdown TOC 2021-05-06 21:27:45 +00:00
picapi
3854526389 Support local paths for modpacks / mods (#858) 2021-05-06 16:27:30 -05:00
Geoff Bourne
74072847ca docs: Added world-copy-compose-project diagram 2021-05-02 18:31:08 -05:00
Geoff Bourne
c5857bfc0b ci: ignore md files for regular build trigger 2021-05-01 17:39:35 -05:00
Geoff Bourne
8b380894f9 ci: gitignore the gh-md-toc script 2021-05-01 17:36:53 -05:00
itzg
b090737162 Auto update markdown TOC 2021-05-01 22:34:32 +00:00
Geoff Bourne
476abc9dad docs: Added table of contents
#845
2021-05-01 17:34:12 -05:00
Geoff Bourne
a2cbf07b6d Auto-merging via docker-versions-create 2021-04-30 14:30:52 -05:00
Geoff Bourne
2a67344b93 Auto-merging via docker-versions-create 2021-04-30 14:29:57 -05:00
Geoff Bourne
48efc224ba Auto-merging via docker-versions-create 2021-04-30 14:28:07 -05:00
Tyler Heucke
9ecb617d2e allow mods with "forge" in name for cf modpacks (#853) 2021-04-30 14:26:05 -05:00
Geoff Bourne
9381776345 Auto-merging via docker-versions-create 2021-04-30 11:14:59 -05:00
Geoff Bourne
5a47bb11ba Auto-merging via docker-versions-create 2021-04-30 11:13:53 -05:00
Geoff Bourne
467c1d9954 Auto-merging via docker-versions-create 2021-04-30 11:11:46 -05:00
Tyler Heucke
4be4fc4808 Corrected locating of CF modpack server jar when not using server script (#852) 2021-04-30 11:05:56 -05:00
Geoff Bourne
d939be28e6 Auto-merging via docker-versions-create 2021-04-28 16:55:54 -05:00
Geoff Bourne
bb8c7756c7 Auto-merging via docker-versions-create 2021-04-28 16:54:26 -05:00
Geoff Bourne
9ced230f55 Auto-merging via docker-versions-create 2021-04-28 16:51:29 -05:00
Krzysztof Zdulski
3261fbd7e9 Support FTP servers for file downloads (#850) 2021-04-28 16:44:39 -05:00
Geoff Bourne
7164d2b885 Fixed REMOVE_OLD_MODS when directories not present
#851
2021-04-28 16:29:47 -05:00
Geoff Bourne
185fccf712 Auto-merging via docker-versions-create 2021-04-26 08:23:48 -05:00
Geoff Bourne
0c860ade12 Auto-merging via docker-versions-create 2021-04-26 08:22:56 -05:00
Geoff Bourne
f3a8276362 Auto-merging via docker-versions-create 2021-04-26 08:21:06 -05:00
Geoff Bourne
cfb2739cd9 Normalized on TYPE=CURSEFORGE for server properties logic, etc
#843
2021-04-26 08:19:50 -05:00
Geoff Bourne
b1bb3f38f3 Allowed combining of REMOVE_OLD_MODS and SPIGET_RESOURCES with /plugins mount
#834
2021-04-24 14:06:31 -05:00
Geoff Bourne
0f0017b02d Auto-merging via docker-versions-create 2021-04-24 13:45:24 -05:00
Geoff Bourne
a99f7a494b Auto-merging via docker-versions-create 2021-04-24 13:44:29 -05:00
Geoff Bourne
b91d63716e Auto-merging via docker-versions-create 2021-04-24 13:42:37 -05:00
Geoff Bourne
65b3997e72 Fixed locating of CF modpack server jar when not using server script
#842
2021-04-24 13:41:18 -05:00
Geoff Bourne
5e8f947ce5 Auto-merging via docker-versions-create 2021-04-23 21:06:22 -05:00
Geoff Bourne
3e9308d315 Auto-merging via docker-versions-create 2021-04-23 21:05:23 -05:00
Geoff Bourne
46cccfd531 Auto-merging via docker-versions-create 2021-04-23 21:03:21 -05:00
Geoff Bourne
5f48a4e5e5 Update FTB/CF handling of SERVER_PROPERTIES to allow spaces
#843
2021-04-23 21:01:50 -05:00
Geoff Bourne
9fe1cb4a0d ci: Switched multiarch-java8 to be based on adoptopenjdk:8-jre-hotspot 2021-04-21 20:13:22 -05:00
Geoff Bourne
e593ca4bda Auto-merging via docker-versions-create 2021-04-18 13:33:22 -05:00
Geoff Bourne
b731eaaffb Auto-merging via docker-versions-create 2021-04-18 13:32:03 -05:00
Geoff Bourne
076038b470 Auto-merging via docker-versions-create 2021-04-18 13:29:46 -05:00
Bartosz Stefańczyk
75f5a430e4 Replace env variables in *.hjson and *.json (#833) 2021-04-18 13:26:33 -05:00
Geoff Bourne
e0c721585e docs: documented COPY_CONFIG_DEST 2021-04-17 19:12:43 -05:00
Jakob Sjælland
da21c2e0a7 Added COPY_MODS_DEST env variable (#831) 2021-04-12 20:24:12 -05:00
Geoff Bourne
2b989e4c39 Added Spiget support for Purpur, Tuinity, Airplane
#824
2021-04-12 20:21:53 -05:00
Geoff Bourne
7d6c80b941 Added support for CF modpacks with install.sh
#829
2021-04-11 10:36:17 -05:00
Geoff Bourne
a3039eea12 Auto-merging via docker-versions-create 2021-04-11 10:12:35 -05:00
Geoff Bourne
cbf9577a24 Auto-merging via docker-versions-create 2021-04-11 10:11:28 -05:00
Geoff Bourne
aa416729ea Auto-merging via docker-versions-create 2021-04-11 10:09:19 -05:00
Jawa_Juice
70ea32e89d Add option for Flare flags (#827) 2021-04-09 12:25:51 -05:00
Geoff Bourne
10a3037ab3 Merged latest from master 2021-04-08 19:32:07 -05:00
Geoff Bourne
9ccfca5061 Merged latest from master 2021-04-08 19:24:14 -05:00
Geoff Bourne
812c6365ec Merged latest from master 2021-04-08 19:14:45 -05:00
Jawa_Juice
52cbf1fb64 Add support for Airplane servers (#826) 2021-04-08 18:50:06 -05:00
Geoff Bourne
190e401452 Added EXEC_DIRECTLY, ENABLE_ROLLING_LOGS, and SKIP_SUDO options
#820
2021-04-02 18:23:05 -05:00
Geoff Bourne
b881a27c8d docs: added openj9 specific options 2021-04-01 22:08:36 -05:00
Geoff Bourne
6fab527eed Auto-merging via docker-versions-create 2021-04-01 16:40:48 -05:00
Geoff Bourne
9690832247 Auto-merging via docker-versions-create 2021-04-01 16:39:46 -05:00
Geoff Bourne
42a5131b19 Merging latest from master 2021-04-01 16:32:55 -05:00
Geoff Bourne
60a68963a8 Added git
#819
2021-04-01 16:28:50 -05:00
Geoff Bourne
624f6a210f Added git
#819
2021-04-01 16:28:32 -05:00
Geoff Bourne
e5948081a7 Added git
#819
2021-04-01 16:27:50 -05:00
Geoff Bourne
7aa47e2a60 Remove existing world data when FORCE_WORLD_COPY (#816) 2021-03-29 21:14:21 -05:00
Geoff Bourne
327538a98f docs: shifted timezone info later 2021-03-27 18:49:58 -05:00
Geoff Bourne
f6c71e27d8 docs: described converting anonymous data volume 2021-03-27 18:47:42 -05:00
Geoff Bourne
4628da7ea2 docs: Fixed alternate exposed port example 2021-03-27 18:39:22 -05:00
Geoff Bourne
02ba96c421 docs: Added -it to initial examples 2021-03-27 18:38:43 -05:00
Geoff Bourne
87f6fe6b20 Fixed $LEVEL path in directory structure diagram 2021-03-26 19:11:38 -05:00
Geoff Bourne
8049bd5b80 docs: Lots of cleanup about /data path and management of mods and plugins related to that 2021-03-21 15:35:12 -05:00
Geoff Bourne
5225ba06c8 Added support for spiget to download Spigot/Bukkit/Paper plugins
#808
2021-03-21 11:43:21 -05:00
Geoff Bourne
d695fc3fbc Disable whitelist server property when WHITELIST empty and overriding
#806
2021-03-21 10:12:35 -05:00
Geoff Bourne
a2132292ac Separated OVERRIDE_OPS|WHITELIST from OPS|WHITELIST logic
#806
2021-03-18 20:00:30 -05:00
Geoff Bourne
c31b191b96 Removed "dot output" when running forge installer for CF modpacks
#800
2021-03-18 19:56:40 -05:00
Geoff Bourne
c4b573f608 docs: Clarified disabling of max tick watchdog for autopause
#555
2021-03-14 16:18:43 -05:00
Geoff Bourne
28810fcba3 Added support for CF modpacks using settings.cfg
#772 #800
2021-03-14 15:03:27 -05:00
Geoff Bourne
8d1989a595 docs: Added more info about getbukkit's weird 1.8 file naming
#103
2021-03-13 16:55:50 -06:00
miki164
d022956e24 Fix typo in example docker-compose (#803) 2021-03-13 06:52:14 -06:00
Geoff Bourne
2bdaa4dc4e Updated java8 warning message for ClassCastException
#775
2021-03-12 17:22:54 -06:00
Geoff Bourne
46bfbaada1 Upgraded mc-monitor to 0.7.1 to fix ProtocolSupport response
#796
2021-03-12 09:27:44 -06:00
Geoff Bourne
e659343821 Improved locating of forge server jar created by installer
#799
2021-03-11 19:40:11 -06:00
Geoff Bourne
44138564b0 Added debug output for deployCustom
#799
2021-03-11 16:29:21 -06:00
Geoff Bourne
3c77abbbab Added debug output for deployForge and minecraftFinalSetup
#799
2021-03-11 16:21:59 -06:00
Geoff Bourne
209c6e6dab Added explicit -dir for Fabric installer
#797
2021-03-11 15:36:34 -06:00
Geoff Bourne
6fa827e9a1 Fixed usage of EXTRA_ARGS
#798
2021-03-11 15:08:26 -06:00
Geoff Bourne
cd3ea7fd2e Upgraded mc-monitor to 0.7.0
#795
2021-03-09 22:13:33 -06:00
Geoff Bourne
d3bd697cb2 Fixed warning reported when no paper jars to remove 2021-03-09 22:05:21 -06:00
Geoff Bourne
6c6bf030c5 docs: Added troubleshooting info for rpi
#795
2021-03-07 13:06:45 -06:00
Geoff Bourne
6e2b3ae0c7 docs: Added java15-openj9 2021-03-06 17:31:16 -06:00
Geoff Bourne
9915929340 ci: Added java15-openj9 2021-03-06 16:53:46 -06:00
Geoff Bourne
298bf5fb0a Merge branch 'master' into multiarch 2021-03-06 16:27:57 -06:00
Geoff Bourne
6ae431b2f0 Merge branch 'master' into java15 2021-03-06 16:25:21 -06:00
Geoff Bourne
1c63cd18b7 Merge branch 'master' into java8-multiarch
# Conflicts:
#	start-configuration
2021-03-06 16:24:55 -06:00
Geoff Bourne
44769b6001 Shifted PATH-fix earlier in startup 2021-03-06 16:06:43 -06:00
Geoff Bourne
ebabfeb669 Shifted PATH-fix earlier in startup 2021-03-06 16:05:01 -06:00
Geoff Bourne
6266a7e3cc Shifted PATH-fix earlier in startup 2021-03-06 16:04:31 -06:00
Geoff Bourne
5c1f176848 Shifted PATH-fix earlier in startup 2021-03-06 16:03:37 -06:00
Geoff Bourne
4186cfd91c Auto-merging via docker-versions-create 2021-02-27 20:56:01 -06:00
Geoff Bourne
457e9b53c7 Auto-merging via docker-versions-create 2021-02-27 20:55:30 -06:00
Geoff Bourne
871ecd4d9d Merge branch 'master' into java8-multiarch
# Conflicts:
#	start-minecraftFinalSetup
2021-02-27 20:52:36 -06:00
Geoff Bourne
861aec6bd6 Added option for MOHIST_BUILD
#781
2021-02-27 20:37:59 -06:00
Geoff Bourne
21572d3547 Ensure FTBA version.json is readable
#784
2021-02-27 17:03:37 -06:00
Geoff Bourne
89afba7437 Ensure FTBA version.json is readable
#784
2021-02-27 17:03:09 -06:00
Geoff Bourne
c572c95161 Ensure FTBA version.json is readable
#784
2021-02-27 16:58:25 -06:00
Geoff Bourne
53f5fbb77f docs: Fixed examples of quoting SEED and MOTD
#782
2021-02-27 11:05:16 -06:00
Geoff Bourne
9299f00d20 Pre-process special characters in REPLACE_ENV_VARIABLES
#718
2021-02-25 19:07:16 -06:00
Geoff Bourne
e5e97a3560 Use file to speed up removal of old PaperMC server jars
#779
2021-02-23 20:04:34 -06:00
Geoff Bourne
32bc0382d6 Only show skipped properties when debugging 2021-02-21 14:36:03 -06:00
Geoff Bourne
fa53abdfb7 Add missing server.properties when needed
#776
2021-02-21 14:32:41 -06:00
Geoff Bourne
0cbfb81b4c misc: Removed debug 2021-02-20 17:35:26 -06:00
Geoff Bourne
d47c801b18 Separated JMX_BINDING from JMX_HOST in ENABLE_JMX usage 2021-02-20 17:34:00 -06:00
Geoff Bourne
c056b9d2dd Improved handling of ENV_VARIABLE_PREFIX
#718
2021-02-20 17:30:50 -06:00
Geoff Bourne
92a15ea85d Updated forge examples to use java8 image
#770
2021-02-15 10:21:42 -06:00
Fersandi Pratama
6fe022ccc8 Fix README: volume should be in list (#767) 2021-02-13 12:24:58 -06:00
Geoff Bourne
f397dd71a9 Fix PATH to include java when needed 2021-02-11 14:52:51 -06:00
Geoff Bourne
b71eb666a7 Fix PATH to include java when needed
#749
2021-02-10 15:11:07 -06:00
Geoff Bourne
02e0a47a52 Merge branch master 2021-02-10 14:58:33 -06:00
Geoff Bourne
b176be942d Fix PATH to include java when needed 2021-02-10 14:52:16 -06:00
Geoff Bourne
60809fe5ad Merge from master
CONFLICT (content): Merge conflict in start-configuration
2021-02-10 14:08:21 -06:00
Geoff Bourne
51c5902db0 Merge from master
CONFLICT (content): Merge conflict in start-configuration
2021-02-10 14:06:10 -06:00
Geoff Bourne
4a8e416fe1 Auto-merging via docker-versions-create
CONFLICT (content): Merge conflict in Dockerfile
2021-02-07 18:22:16 -06:00
Geoff Bourne
090e624ebc Auto-merging via docker-versions-create
CONFLICT (content): Merge conflict in Dockerfile
2021-02-07 18:20:35 -06:00
Geoff Bourne
ce4efd0b70 Auto-merging docker-versions-create.sh
CONFLICT (content): Merge conflict in Dockerfile
2021-02-07 09:16:33 -06:00
Geoff Bourne
c8dc751b82 Auto-merging docker-versions-create.sh
CONFLICT (content): Merge conflict in Dockerfile
2021-02-07 09:15:01 -06:00
Geoff Bourne
7c862df92a Merge branch 'master' into java15 2021-02-06 15:12:45 -06:00
Geoff Bourne
e49c1c2f01 Merge branch 'master' into java15 2021-02-06 15:11:34 -06:00
Geoff Bourne
57390b02ca Merge branch 'master' into java15 2021-02-06 14:53:02 -06:00
Geoff Bourne
a698248dff ci: Based on adoptopenjdk:15-jre 2021-02-06 14:50:43 -06:00
Geoff Bourne
b8ef6eba3f Auto-merging via docker-versions-create 2021-01-29 21:07:29 -06:00
Geoff Bourne
cc5fe0859a Auto-merging via docker-versions-create 2021-01-12 17:28:33 -06:00
Geoff Bourne
8f15aac6fc Merge branch 'multiarch' into multiarch-latest 2021-01-12 17:06:00 -06:00
Geoff Bourne
84ce3b4b47 Merge branch 'multiarch' into multiarch-latest 2021-01-09 14:07:31 -06:00
Geoff Bourne
b07c43a32f Merge branch 'multiarch' into multiarch-latest 2021-01-09 12:31:20 -06:00
Geoff Bourne
ce1b337f7f Auto-merging via docker-versions-create 2021-01-09 11:25:38 -06:00
Geoff Bourne
ee8e1b9322 Merged latest from master 2021-01-06 22:16:40 -06:00
Geoff Bourne
20bd5c4c36 Merge branch 'multiarch' into multiarch-latest 2020-12-31 13:19:34 -06:00
Geoff Bourne
de082d0fb2 Merge branch 'multiarch' into multiarch-latest 2020-12-28 11:44:41 -06:00
Geoff Bourne
3cc5cdbc06 Auto-merging via docker-versions-create 2020-12-27 22:08:29 -06:00
Geoff Bourne
b69ec47b18 Auto-merging via docker-versions-create 2020-12-19 08:26:49 -06:00
Geoff Bourne
51fc8e824d Auto-merging via docker-versions-create 2020-12-15 14:00:33 -06:00
Geoff Bourne
aff9031284 Merge branch 'multiarch' into multiarch-latest 2020-11-26 08:46:26 -06:00
Geoff Bourne
397d080da2 Merge branch 'multiarch' into multiarch-latest 2020-11-25 21:36:48 -06:00
Geoff Bourne
cb5d052829 Merge branch 'multiarch' into multiarch-latest
# Conflicts:
#	.github/workflows/build-multiarch.yml
2020-11-25 16:09:23 -06:00
Geoff Bourne
0908d21bed Merged from master 2020-11-25 16:01:42 -06:00
Marc Doughty
4d878985d4 Remove distro-provided JRE (#659)
We don't need Java 8 from Ubuntu, we have 15 from AdoptOpenJDK.
2020-11-03 06:33:19 -06:00
Geoff Bourne
72d7d4a65e Switched to latest Docker buildx github action 2020-10-31 14:48:51 -05:00
Geoff Bourne
cb0add3b90 Added github action match for multiarch-latest branch 2020-10-31 13:38:44 -05:00
Marc Doughty
71a48ce10f Convert to AdoptOpenJDK (#658) 2020-10-31 13:36:47 -05:00
53 changed files with 1562 additions and 767 deletions

5
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
#github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
custom:
- https://www.buymeacoffee.com/itzg
- https://paypal.me/itzg

7
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,7 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

View File

@@ -2,56 +2,58 @@ name: Build and publish multiarch
on:
push:
branches:
- multiarch
- java8-multiarch
- multiarch-latest
- java15
- master
- "*-multiarch"
- "multiarch*"
- java8-openj9
- java11*
- java16*
- test/multiarch/*
tags:
- "[0-9]+.[0-9]+.[0-9]+-multiarch"
- "[0-9]+.[0-9]+.[0-9]+-multiarch-latest"
- "[0-9]+.[0-9]+.[0-9]+-java15"
- "[0-9]+.[0-9]+.[0-9]+"
- "[0-9]+.[0-9]+.[0-9]+-multiarch*"
- "[0-9]+.[0-9]+.[0-9]+-*multiarch"
- "[0-9]+.[0-9]+.[0-9]+-java8-openj9"
- "[0-9]+.[0-9]+.[0-9]+-java11*"
- "[0-9]+.[0-9]+.[0-9]+-java16*"
paths-ignore:
- "*.md"
- "docs/**"
- "examples/**"
jobs:
docker-buildx:
if: github.repository == 'itzg/docker-minecraft-server'
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v2.2.0
uses: actions/checkout@v2.3.4
- name: Prepare
id: prep
run: |
DOCKER_IMAGE=itzg/minecraft-server
VERSION=edge
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/}
fi
if [[ $GITHUB_REF == refs/heads/* ]]; then
VERSION=${GITHUB_REF#refs/heads/}
if [[ $VERSION == master ]]; then
VERSION=latest
fi
fi
TAGS="${DOCKER_IMAGE}:${VERSION//\//-}"
echo ::set-output name=tags::${TAGS}
echo ::set-output name=cache_from::${TAGS}
echo ::set-output name=version::${VERSION//\//-}
echo ::set-output name=cache_version::${VERSION//\//-}
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: |
itzg/minecraft-server
tags: |
type=ref,event=branch
type=ref,event=tag
flavor: |
latest=${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2
uses: actions/cache@v2.1.6
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ steps.prep.outputs.cache_version }}-${{ github.sha }}
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-${{ steps.prep.outputs.cache_version }}-
${{ runner.os }}-buildx-
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v1.2.0
- name: Login to DockerHub
uses: docker/login-action@v1
@@ -61,22 +63,25 @@ jobs:
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
uses: docker/build-push-action@v2.7.0
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm/v7,linux/arm64
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.prep.outputs.tags }}
tags: ${{ steps.meta.outputs.tags }}
# ensure latest base image is used
pull: true
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
labels: |
org.opencontainers.image.documentation=https://github.com/itzg/docker-minecraft-server
org.opencontainers.image.source=https://github.com/itzg/docker-minecraft-server
org.opencontainers.image.version=${{ steps.prep.outputs.version }}
org.opencontainers.image.revision=${{ github.sha }}
cache-to: type=local,dest=/tmp/.buildx-cache-new
labels: ${{ steps.meta.outputs.labels }}
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
- # Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache

21
.github/workflows/generate-toc.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Generate README table of contents
on:
push:
branches:
- master
paths:
- README.md
jobs:
generate:
if: github.repository == 'itzg/docker-minecraft-server'
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v2.3.4
- run: |
curl https://raw.githubusercontent.com/ekalinin/github-markdown-toc/master/gh-md-toc -o gh-md-toc
chmod a+x gh-md-toc
./gh-md-toc --insert --no-backup README.md
- uses: stefanzweifel/git-auto-commit-action@v4.12.0
with:
commit_message: "docs: Auto update markdown TOC"

View File

@@ -3,14 +3,12 @@ name: Build and Publish
on:
push:
branches:
- master
- java8
- openj9
- openj9-11
- adopt11
- test/*
tags:
- "[0-9]+.[0-9]+.[0-9]+"
- "[0-9]+.[0-9]+.[0-9]+-java8"
- "[0-9]+.[0-9]+.[0-9]+-openj9"
- "[0-9]+.[0-9]+.[0-9]+-openj9-11"
@@ -22,7 +20,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2.3.4
- name: Run tests
run: |
@@ -33,7 +31,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2.3.4
- name: Prepare
id: prep
@@ -51,20 +49,17 @@ jobs:
fi
TAGS="${DOCKER_IMAGE}:${VERSION//\//-}"
echo ::set-output name=tags::${TAGS}
echo ::set-output name=cache_from::${TAGS}
echo ::set-output name=version::${VERSION//\//-}
echo ::set-output name=cache_version::${VERSION//\//-}
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2
uses: actions/cache@v2.1.6
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ steps.prep.outputs.cache_version }}-${{ github.sha }}
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-${{ steps.prep.outputs.cache_version }}-
${{ runner.os }}-buildx-
- name: Login to DockerHub
@@ -75,7 +70,7 @@ jobs:
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
uses: docker/build-push-action@v2.7.0
with:
context: .
file: ./Dockerfile
@@ -86,7 +81,7 @@ jobs:
# tags determined by prep step
tags: ${{ steps.prep.outputs.tags }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
labels: |
org.opencontainers.image.documentation=https://github.com/itzg/docker-minecraft-server
org.opencontainers.image.version=${{ steps.prep.outputs.version }}
@@ -95,3 +90,11 @@ jobs:
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
- # Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache

View File

@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2.3.4
- name: Run tests
run: |

3
.gitignore vendored
View File

@@ -1,3 +1,4 @@
/data/
/.idea/
*.iml
*.iml
/gh-md-toc

View File

@@ -1,16 +1,17 @@
FROM ubuntu:18.04
FROM adoptopenjdk:8-jre-openj9
LABEL org.opencontainers.image.authors="Geoff Bourne <itzgeoff@gmail.com>"
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install -y \
openjdk-8-jre-headless \
imagemagick \
gosu \
sudo \
net-tools \
iputils-ping \
curl wget \
git \
jq \
dos2unix \
mysql-client \
@@ -48,17 +49,21 @@ RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=0.1.7 --var app=mc-monitor --file {{.app}} \
--var version=0.7.1 --var app=mc-monitor --file {{.app}} \
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=1.5.0 --var app=mc-server-runner --file {{.app}} \
--var version=1.7.0 --var app=mc-server-runner --file {{.app}} \
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=0.1.1 --var app=maven-metadata-release --file {{.app}} \
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
ARG ASCIIFY_VERSION=1.0.1
ADD https://jitpack.io/com/github/itzg/asciify/${ASCIIFY_VERSION}/asciify-${ASCIIFY_VERSION}.jar /usr/share/asciify/asciify.jar
RUN chmod -R a+r /usr/share/asciify
COPY mcstatus /usr/local/bin
VOLUME ["/data"]
@@ -66,6 +71,8 @@ COPY server.properties /tmp/server.properties
COPY log4j2.xml /tmp/log4j2.xml
WORKDIR /data
STOPSIGNAL SIGTERM
ENV UID=1000 GID=1000 \
MEMORY="1G" \
TYPE=VANILLA VERSION=LATEST \
@@ -82,5 +89,6 @@ RUN dos2unix /start* && chmod +x /start*
RUN dos2unix /health.sh && chmod +x /health.sh
RUN dos2unix /autopause/* && chmod +x /autopause/*.sh
ENTRYPOINT [ "/start" ]
HEALTHCHECK --start-period=1m CMD /health.sh

1139
README.md

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,16 @@
#!/bin/bash
#set -x
# Use this variable to indicate a list of branches that docker hub is watching
branches_list=('java8' 'java8-multiarch' 'openj9' 'openj9-11' 'adopt11' 'java15' 'multiarch' 'multiarch-latest')
branches_list=(
'java8'
'java8-multiarch'
'java8-openj9'
'java11'
'java11-openj9'
'java16'
'java16-openj9'
'multiarch-latest'
)
function TrapExit {
echo "Checking out back in master"

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
docs/motd-example.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 985 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@@ -1,4 +1,4 @@
version: '3'
version: '3.8'
services:
minecraft:

View File

@@ -1,8 +1,8 @@
version: '3.2'
version: '3.8'
services:
mc:
image: itzg/minecraft-server
image: itzg/minecraft-server:java8
volumes:
- ./modpacks:/modpacks:ro
environment:

View File

@@ -1,20 +0,0 @@
version: "3.7"
services:
mc:
image: itzg/minecraft-server
ports:
- 25565:25565
volumes:
# Attach .../Curse/Minecraft/Instances for use at /instances
- ./Instances:/instances:ro
# Attach /data as usual
- ./ServerData:/data
environment:
EULA: "TRUE"
# Modpacks generally need more memory, so let's give at 2 GB
MEMORY: 2G
# Use new CURSE_INSTANCE type
TYPE: CURSE_INSTANCE
# Reference directory of or full path to minecraftinstance.json
CURSE_INSTANCE_JSON: /instances/FTB Presents SkyFactory 3

View File

@@ -0,0 +1,15 @@
version: "3"
services:
mc:
image: ${IMAGE:-itzg/minecraft-server}
environment:
EULA: "true"
TYPE: FABRIC
ports:
- 25565:25565
volumes:
- fabric:/data
volumes:
fabric: {}

View File

@@ -1,8 +1,8 @@
version: "3.7"
version: "3.8"
services:
mc:
image: itzg/minecraft-server
image: itzg/minecraft-server:java8
ports:
# expose the Minecraft server port outside of container
- 25565:25565

View File

@@ -1,9 +1,9 @@
version: "3.7"
version: "3.8"
services:
mc:
# FTBA support is only available in multiarch image tag
image: itzg/minecraft-server:multiarch
# FTBA support is only available in non-Alpine images
image: itzg/minecraft-server:java8-multiarch
ports:
# expose the Minecraft server port outside of container
- 25565:25565

View File

@@ -1,4 +1,4 @@
version: '3.7'
version: '3.8'
services:
mc:

View File

@@ -1,4 +1,4 @@
version: '3'
version: '3.8'
services:
mc:

View File

@@ -0,0 +1,27 @@
version: '3.8'
services:
rlcraft:
image: itzg/minecraft-server:java8
container_name: rlcraft
volumes:
- rlcraft-modpack:/modpacks:ro
- rlcraft-data:/data
environment:
EULA: "true"
TYPE: "FORGE"
VERSION: "1.12.2"
FORGEVERSION: "14.23.5.2855"
DIFFICULTY: "hard"
MAX_TICK_TIME: "-1"
VIEW_DISTANCE: "6"
ALLOW_FLIGHT: "true"
MEMORY: "4G"
GENERIC_PACK: "/modpacks/RLCraft_Server_Pack_1.12.2_Beta_v2.8.2.zip"
ports:
- 25565:25565
restart: unless-stopped
volumes:
rlcraft-data:
rlcraft-modpack:

View File

@@ -1,4 +1,4 @@
version: "3"
version: "3.8"
services:
mc:
@@ -9,4 +9,4 @@ services:
EULA: "TRUE"
volumes:
# attach the relative directory 'data' to the container's /data path
./data:/data
- ./data:/data

View File

@@ -0,0 +1,17 @@
version: "3"
services:
mc:
# Only using IMAGE variable to allow for local testing
image: ${IMAGE:-itzg/minecraft-server}
ports:
- 25565:25565
environment:
EULA: "TRUE"
TYPE: SPIGOT
SPIGET_RESOURCES: 9089,34315,3836
volumes:
- data:/data
volumes:
data: {}

View File

@@ -1,11 +1,11 @@
version: '3'
version: '3.8'
# Forge with Sponge API support. THIS REQUIRES DOWNLOADING SPONGEFORGE.
# Place the SpongeForge jar file in /data/mods. Other Forge mods go here as well.
# Place Sponge mods in /data/mods/plugins. Yes, this is a directory inside the Forge mod directory. Do NOT use /data/plugins.
services:
minecraft:
image: itzg/minecraft-server
image: itzg/minecraft-server:java8
ports:
- "25565:25565"
volumes:

View File

@@ -1,4 +1,4 @@
version: "3.7"
version: "3.8"
services:
mc:

View File

@@ -1,3 +1,3 @@
Place server [modpacks downloaded from CurseForge](https://www.curseforge.com/minecraft/modpacks) in this directory.
The example [`docker-compose-curseforge.yml`](../docker-compose-curseforge.yml) references a modpack downloaded from <https://www.curseforge.com/minecraft/modpacks/skyfactory-4/files/2787018>.
The example [`docker-compose-curseforge.yml`](../docker-compose-curseforge.yml) references a modpack downloaded from <https://www.curseforge.com/minecraft/modpacks/skyfactory-4/files/3012800>.

2
start
View File

@@ -5,7 +5,7 @@
umask 0002
chmod g+w /data
if [ $(id -u) = 0 ]; then
if ! isTrue "${SKIP_SUDO:-false}" && [ $(id -u) = 0 ]; then
runAsUser=minecraft
runAsGroup=minecraft

View File

@@ -54,7 +54,11 @@ if [[ $RCON_PASSWORD_FILE ]]; then
log ""
fi
export SERVER_PROPERTIES=/data/server.properties
if ! which java > /dev/null; then
log "Fixing PATH to include java"
PATH="${PATH}:/opt/java/openjdk/bin"
fi
export VERSIONS_JSON=https://launchermeta.mojang.com/mc/game/version_manifest.json
case "X$VERSION" in
@@ -105,7 +109,7 @@ case "${TYPE^^}" in
exec ${SCRIPTS:-/}start-deployFTBA "$@"
;;
CURSEFORGE|FTB)
FTB|CURSEFORGE)
exec ${SCRIPTS:-/}start-deployCF "$@"
;;
@@ -145,11 +149,23 @@ case "${TYPE^^}" in
exec ${SCRIPTS:-/}start-deployYatopia "$@"
;;
AIRPLANE)
exec ${SCRIPTS:-/}start-deployAirplane "$@"
;;
CANYON)
exec ${SCRIPTS:-/}start-deployCanyon "$@"
;;
LIMBO)
exec ${SCRIPTS:-/}start-deployLimbo "$@"
;;
*)
log "Invalid type: '$TYPE'"
log "Must be: VANILLA, FORGE, BUKKIT, SPIGOT, PAPER, FTBA (multiarch-only),"
log " CURSE_INSTANCE, CURSEFORGE, SPONGEVANILLA, TUINITY, PURPUR"
log " CUSTOM, MAGMA, MOHIST, CATSERVER, YATOPIA"
log " CUSTOM, MAGMA, MOHIST, CATSERVER, YATOPIA, AIRPLANE, CANYON, LIMBO"
exit 1
;;

52
start-deployAirplane Normal file
View File

@@ -0,0 +1,52 @@
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
. ${SCRIPTS:-/}start-utils
isDebugging && set -x
if [ "${VERSION}" != "LATEST" ] && [ "${VERSION}" != "1.16" ] && [ "${VERSION}" != "1.17" ] && [ "${VERSION}" != "PURPUR" ] && [ "${VERSION}" != "PURPUR-1.16" ] ; then
log "ERROR: Airplane server type only supports VERSION=LATEST, VERSION=1.17, VERSION=1.16, VERSION=PURPUR or VERSION=PURPUR-1.16. Note that these are branches, not #.#.# versions."
exit 1
fi
: ${AIRPLANE_BUILD:=lastSuccessfulBuild}
: ${AIRPLANE_TYPE:=airplane}
if [ "${VERSION}" = "LATEST" ] || [ "${VERSION}" = "1.17" ]; then
AIRPLANE_BRANCH="1.17"
fi
if [ "${VERSION}" = "1.16" ]; then
AIRPLANE_BRANCH="1.16"
fi
if [ "${VERSION}" = "PURPUR" ]; then
AIRPLANE_BRANCH="Purpur-1.17"
AIRPLANE_TYPE="airplanepurpur"
fi
if [ "${VERSION}" = "PURPUR-1.16" ]; then
AIRPLANE_BRANCH="Purpur-1.16"
AIRPLANE_TYPE="airplanepurpur"
fi
log "Using Airplane-${AIRPLANE_BRANCH} branch"
export SERVER=airplane-${AIRPLANE_BRANCH}-${AIRPLANE_BUILD}.jar
if [ ! -f "$SERVER" ] || isTrue "${FORCE_REDOWNLOAD:-false}"; then
downloadUrl="https://ci.tivy.ca/job/Airplane-${AIRPLANE_BRANCH}/${AIRPLANE_BUILD}/artifact/launcher-${AIRPLANE_TYPE}.jar"
log "Downloading Airplane from $downloadUrl ..."
curl -fsSL -o "$SERVER" "$downloadUrl"
if [ ! -f "$SERVER" ]; then
log "ERROR: failed to download from $downloadUrl (status=$?)"
exit 3
fi
fi
# Normalize on Spigot for later operations
export TYPE=SPIGOT
export SKIP_LOG4J_CONFIG=true
exec ${SCRIPTS:-/}start-spiget "$@"

View File

@@ -64,7 +64,11 @@ function downloadSpigot {
fi
if [[ -z $downloadUrl ]]; then
downloadUrl="https://cdn.getbukkit.org/${getbukkitFlavor}/${getbukkitFlavor}-${VANILLA_VERSION}.jar"
if versionLessThan 1.16.5; then
downloadUrl="https://cdn.getbukkit.org/${getbukkitFlavor}/${getbukkitFlavor}-${VANILLA_VERSION}.jar"
else
downloadUrl="https://download.getbukkit.org/${getbukkitFlavor}/${getbukkitFlavor}-${VANILLA_VERSION}.jar"
fi
fi
setServerVar
@@ -82,7 +86,9 @@ function downloadSpigot {
ERROR: failed to download from $downloadUrl
Visit https://getbukkit.org/download/${getbukkitFlavor} to lookup the
exact version, such as 1.4.6-R0.4-SNAPSHOT or 1.8-R0.1-SNAPSHOT-LATEST
exact version, such as 1.4.6-R0.4-SNAPSHOT or 1.8-R0.1-SNAPSHOT-latest.
Click into the version entry to find the **exact** version, because something
like "1.8" is not sufficient according to their download naming.
EOF
@@ -123,5 +129,4 @@ fi
export TYPE=SPIGOT
export SKIP_LOG4J_CONFIG=true
# Continue to Final Setup
exec ${SCRIPTS:-/}start-finalSetupWorld $@
exec ${SCRIPTS:-/}start-spiget "$@"

View File

@@ -3,6 +3,24 @@
set -e
. ${SCRIPTS:-/}start-utils
loadForgeVars() {
cfgFile=${1?}
pat='^([^#;][^=]+)=[:space:]*([^;]*)'
while read -r line || [[ -n "$line" ]] ; do
if [[ $line =~ $pat ]]; then
#echo "MATCHED $line"
k=${BASH_REMATCH[1]}
v=${BASH_REMATCH[2]}
case $k in
FORGEURL)
forgeInstallerUrl="$v"
;;
esac
fi
done < "$cfgFile"
}
isDebugging && set -x
: ${FTB_BASE_DIR:=${CF_BASE_DIR:-/data/FeedTheBeast}}
@@ -42,23 +60,39 @@ if ! isTrue ${USE_MODPACK_START_SCRIPT:-true}; then
mkdir -p ${FTB_BASE_DIR}
unzip -o "${FTB_SERVER_MOD}" -d ${FTB_BASE_DIR} | awk '{printf "."} END {print ""}'
serverJar=$(find ${FTB_BASE_DIR} -path "*/libraries/*" -prune -type f -o -not -name "forge*installer.jar" -name "forge*.jar")
serverJar=$(find ${FTB_BASE_DIR} -type f \( -path "*/libraries/*" -o -path "*/mods/*" \) -prune -o -name "forge*.jar" -not -name "forge*installer.jar" -print)
if [[ -z "$serverJar" ]]; then
forgeInstallerJar=$(find ${FTB_BASE_DIR} -name "forge*installer.jar")
if [ -f "${FTB_BASE_DIR}/settings.cfg" ]; then
loadForgeVars "${FTB_BASE_DIR}/settings.cfg"
if [[ $forgeInstallerUrl ]]; then
forgeInstallerJar="${FTB_BASE_DIR}/forge-installer.jar"
if ! curl -fsSL -o "$forgeInstallerJar" "$forgeInstallerUrl" ; then
log "ERROR failed to download Forge installer from $forgeInstallerUrl"
exit 2
fi
fi
else
forgeInstallerJar=$(find "${FTB_BASE_DIR}" -name "forge*installer.jar")
fi
if [[ -z "${forgeInstallerJar}" ]]; then
log "ERROR Unable to find forge installer in modpack."
log "ERROR Unable to find forge installer in modpack"
log " or download using modpack config."
log " Make sure you downloaded the server files."
exit 2
fi
log "Installing forge server"
(cd $(dirname "${forgeInstallerJar}"); java -jar $(basename "${forgeInstallerJar}") --installServer) | awk '{printf "."} END {print ""}'
dirOfInstaller=$(dirname "${forgeInstallerJar}")
(cd "${dirOfInstaller}"; java -jar $(basename "${forgeInstallerJar}") --installServer)
fi
echo "${FTB_SERVER_MOD}" > $installMarker
fi
export SERVER=$(find ${FTB_BASE_DIR} -path "*/libraries/*" -prune -type f -o -not -name "forge*installer.jar" -name "forge*.jar")
export SERVER=$(find ${FTB_BASE_DIR} -type f \( -path "/libraries/*" -o -path "/mods/*" \) -prune -o -name "forge*.jar" -not -name "forge*installer.jar" -maxdepth 2 -print)
if [[ -z "${SERVER}" || ! -f "${SERVER}" ]]; then
log "ERROR unable to locate installed forge server jar"
isDebugging && find ${FTB_BASE_DIR} -name "forge*.jar"
@@ -76,6 +110,7 @@ entryScriptExpr="
-o -name ServerStartLinux.sh
-o -name LaunchServer.sh
-o -name server-start.sh
-o -name start-server.sh
-o -name startserver.sh
-o -name StartServer.sh
"
@@ -134,13 +169,23 @@ if [[ $startScriptCount = 0 ]]; then
log "Unpacking FTB server modpack ${srv_modpack} ..."
mkdir -p ${FTB_BASE_DIR}
unzip -o "${srv_modpack}" -d ${FTB_BASE_DIR} | awk '{printf "."} END {print ""}'
installScript=$(find "${FTB_BASE_DIR}" -maxdepth 2 -type f -name install.sh)
if [[ "$installScript" ]]; then
(
cd "$(dirname "${installScript}")"
chmod +x ./install.sh
log "Running included install.sh"
./install.sh
)
fi
fi
if [[ $(find ${FTB_BASE_DIR} $entryScriptExpr | wc -l) = 0 ]]; then
# Allow up to 2 levels since some modpacks have a top-level directory named
# for the modpack
forgeJar=$(find ${FTB_BASE_DIR} -maxdepth 2 -name 'forge*.jar' -a -not -name 'forge*installer')
forgeJar=$(find ${FTB_BASE_DIR} -type f \( -path "/libraries/*" -o -path "/mods/*" \) -prune -o -name "forge*.jar" -not -name "forge*installer.jar" -maxdepth 2 -print)
if [[ "$forgeJar" ]]; then
export FTB_BASE_DIR=$(dirname "${forgeJar}")
log "No entry script found, so building one for ${forgeJar}"

54
start-deployCanyon Normal file
View File

@@ -0,0 +1,54 @@
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
. ${SCRIPTS:-/}start-utils
isDebugging && set -x
: ${CANYON_BUILD:=lastSuccessfulBuild}
JAVA_VER=$(java -version 2>&1 | head -1 | cut -d'"' -f2 | sed '/^1\./s///' | cut -d'.' -f1)
if [ "${JAVA_VER}" != "8" ]; then
log "ERROR: Canyon server type only supports Java version 8"
exit 1
fi
if [ "${VERSION}" != "b1.7.3" ]; then
log "ERROR: Canyon server type only supports VERSION=b1.7.3"
exit 1
fi
canyonJob="https://ci.velocitypowered.com/job/Canyon"
buildRelPath=$(
curl -fsSL "${canyonJob}/${CANYON_BUILD}/api/json" |
jq -r '.artifacts[0].relativePath'
)
buildNumber=$(
curl -fsSL "${canyonJob}/${CANYON_BUILD}/api/json" |
jq -r '.number'
)
baseName=$(basename "${buildRelPath}")
# Add build tag to non-tagged builds for version detection
if [ ${baseName%.*} = 'canyon-server' ]; then
export SERVER=${baseName%.*}_build${buildNumber}.jar
else
export SERVER="${baseName}"
fi
if [ ! -f "$SERVER" ]; then
downloadUrl="${canyonJob}/${CANYON_BUILD}/artifact/${buildRelPath}"
log "Downloading Canyon build ${buildNumber} from $downloadUrl ..."
curl -fsSL -o "$SERVER" "$downloadUrl"
if [ ! -f "$SERVER" ]; then
log "ERROR: failed to download from $downloadUrl (status=$?)"
exit 3
fi
fi
# Normalize on Spigot for later operations
export TYPE=SPIGOT
export SKIP_LOG4J_CONFIG=true
exec ${SCRIPTS:-/}start-spiget "$@"

View File

@@ -1,6 +1,7 @@
#!/bin/bash
. ${SCRIPTS:-/}start-utils
isDebugging && set -x
if isURL ${CUSTOM_SERVER}; then
filename=$(basename ${CUSTOM_SERVER})

View File

@@ -30,7 +30,13 @@ if ! [ -f "${ftbInstallMarker}" ] || [ $(cat "${ftbInstallMarker}") != "${FTB_MO
ftbInstaller=/data/ftb-installer
if ! [[ -f "${ftbInstaller}" ]]; then
log "Downloading FTB installer"
curl -fsSL https://api.modpacks.ch/public/modpack/1/1/server/linux -o "${ftbInstaller}"
if [ "$(uname -m)" == "aarch64" ]; then
log "Downloading ARM installer"
curl -fsSL https://api.modpacks.ch/public/modpack/1/1/server/arm/linux -o "${ftbInstaller}"
else
log "Downloading x86 installer"
curl -fsSL https://api.modpacks.ch/public/modpack/1/1/server/linux -o "${ftbInstaller}"
fi
chmod +x "${ftbInstaller}"
fi
@@ -43,18 +49,23 @@ if ! [ -f "${ftbInstallMarker}" ] || [ $(cat "${ftbInstallMarker}") != "${FTB_MO
echo "${FTB_MODPACK_ID}=${FTB_MODPACK_VERSION_ID}" > ${ftbInstallMarker}
writeEula
# some modpacks result in --w----r-- permissions
chmod a+r version.json
else
log "FTB modpack ID ${FTB_MODPACK_ID}, version ID ${FTB_MODPACK_VERSION_ID} is ready to go"
fi
isDebugging && cat version.json
forgeVersion=$(jq -r '.targets|unique[] | select(.name == "forge") | .version' version.json)
fabricVersion=$(jq -r '.targets|unique[] | select(.name == "fabric") | .version' version.json)
mcVersion=$(jq -r '.targets|unique[] | select(.name == "minecraft") | .version' version.json)
variants=(
forge-${mcVersion}-${forgeVersion}.jar
forge-${mcVersion}-${forgeVersion}-universal.jar
forge-${mcVersion}-${forgeVersion}-${mcVersion}-universal.jar
fabric-${mcVersion}-${fabricVersion}-server-launch.jar
)
for f in ${variants[@]}; do
if [ -f $f ]; then
@@ -63,7 +74,7 @@ for f in ${variants[@]}; do
fi
done
if ! [ -v SERVER ]; then
log "ERROR unable to locate the installed forge server jar"
log "ERROR unable to locate the installed FTB server jar"
ls *.jar
exit 2
fi

View File

@@ -3,58 +3,50 @@ set -eu
. ${SCRIPTS:-/}start-utils
requireVar VANILLA_VERSION
export TYPE=FABRIC
export SERVER=fabric-server-${VANILLA_VERSION}.jar
FABRIC_INSTALLER=${FABRIC_INSTALLER:-}
FABRIC_INSTALLER_URL=${FABRIC_INSTALLER_URL:-}
FABRIC_INSTALLER_VERSION=${FABRIC_INSTALLER_VERSION:-${FABRICVERSION:-LATEST}}
if [[ -z $FABRIC_INSTALLER && -z $FABRIC_INSTALLER_URL ]]; then
log "Checking Fabric version information."
case $FABRIC_INSTALLER_VERSION in
LATEST)
isDebugging && set -x
if [[ ! -e ${SERVER} ]]; then
: ${FABRIC_INSTALLER:=}
: ${FABRIC_INSTALLER_URL:=}
: ${FABRIC_INSTALLER_VERSION:=${FABRICVERSION:-LATEST}}
if [[ -z $FABRIC_INSTALLER && -z $FABRIC_INSTALLER_URL ]]; then
log "Checking Fabric version information."
if [[ ${FABRIC_INSTALLER_VERSION^^} = LATEST ]]; then
FABRIC_INSTALLER_VERSION=$(maven-metadata-release https://maven.fabricmc.net/net/fabricmc/fabric-installer/maven-metadata.xml)
;;
esac
fi
FABRIC_INSTALLER="/tmp/fabric-installer-${FABRIC_INSTALLER_VERSION}.jar"
markerVersion=$FABRIC_INSTALLER_VERSION
FABRIC_INSTALLER="fabric-installer-${FABRIC_INSTALLER_VERSION}.jar"
FABRIC_INSTALLER_URL="https://maven.fabricmc.net/net/fabricmc/fabric-installer/${FABRIC_INSTALLER_VERSION}/fabric-installer-${FABRIC_INSTALLER_VERSION}.jar"
elif [[ -z $FABRIC_INSTALLER ]]; then
FABRIC_INSTALLER="fabric-installer.jar"
elif [[ ! -e $FABRIC_INSTALLER ]]; then
log "ERROR: the given Fabric installer doesn't exist : $FABRIC_INSTALLER"
exit 2
fi
elif [[ -z $FABRIC_INSTALLER ]]; then
FABRIC_INSTALLER="/tmp/fabric-installer.jar"
markerVersion=custom
elif [[ ! -e $FABRIC_INSTALLER ]]; then
log "ERROR: the given Fabric installer doesn't exist : $FABRIC_INSTALLER"
exit 2
fi
installMarker="/data/.fabric-installed-${VANILLA_VERSION}-${markerVersion}"
debug Checking for installMarker ${installMarker}
if [[ ! -e $installMarker ]]; then
if [[ ! -e $FABRIC_INSTALLER ]]; then
if [[ -z $FABRIC_INSTALLER_URL ]]; then
log "Downloading installer version $FABRIC_INSTALLER_VERSION"
downloadUrl="https://maven.fabricmc.net/net/fabricmc/fabric-installer/${FABRIC_INSTALLER_VERSION}/fabric-installer-${FABRIC_INSTALLER_VERSION}.jar"
log "...trying $downloadUrl"
curl -o $FABRIC_INSTALLER -fsSL $downloadUrl
else
log "Downloading $FABRIC_INSTALLER_URL ..."
if ! curl -o $FABRIC_INSTALLER -fsSL $FABRIC_INSTALLER_URL; then
log "Failed to download from given location $FABRIC_INSTALLER_URL"
exit 2
fi
log "Downloading $FABRIC_INSTALLER_URL ..."
if ! curl -o $FABRIC_INSTALLER -fsSL $FABRIC_INSTALLER_URL; then
log "Failed to download from given location $FABRIC_INSTALLER_URL"
exit 2
fi
fi
if isDebugging; then
debug "Installing Fabric ${VANILLA_VERSION} using $FABRIC_INSTALLER"
else
log "Installing Fabric using $FABRIC_INSTALLER"
fi
log "Installing Fabric ${VANILLA_VERSION} using $FABRIC_INSTALLER"
tries=3
set +e
while ((--tries >= 0)); do
java -jar $FABRIC_INSTALLER server -mcversion $VANILLA_VERSION -downloadMinecraft
java -jar $FABRIC_INSTALLER server \
-mcversion $VANILLA_VERSION \
-downloadMinecraft \
-dir /data
if [[ $? == 0 ]]; then
break
fi
@@ -64,13 +56,9 @@ if [[ ! -e $installMarker ]]; then
log "Fabric failed to install after several tries." >&2
exit 10
fi
export SERVER=fabric-server-launch.jar
log "Using server $SERVER"
echo $SERVER > $installMarker
else
export SERVER=$(< $installMarker)
mv fabric-server-launch.jar ${SERVER}
fi
# Contineut to Final Setup
# Continue to Final Setup
exec ${SCRIPTS:-/}start-finalSetupWorld $@

View File

@@ -1,8 +1,8 @@
#!/bin/bash
. ${SCRIPTS:-/}start-utils
export TYPE=FORGE
: ${FORGEVERSION:=RECOMMENDED}
isDebugging && set -x
if [[ -z $FORGE_INSTALLER && -z $FORGE_INSTALLER_URL ]]; then
norm=$VANILLA_VERSION
@@ -45,6 +45,8 @@ elif [[ -z $FORGE_INSTALLER ]]; then
elif [[ ! -e $FORGE_INSTALLER ]]; then
log "ERROR: the given Forge installer doesn't exist : $FORGE_INSTALLER"
exit 2
else
shortForgeVersion=$VANILLA_VERSION-${FORGE_INSTALLER_CUSTOM_VERSION:-custom}
fi
installMarker="/data/.forge-installed-$shortForgeVersion"
@@ -65,7 +67,7 @@ if [ ! -e $installMarker ]; then
log "Unable to compute URL for $normForgeVersion"
exit 2
fi
downloadUrl=http://files.minecraftforge.net/maven/net/minecraftforge/forge/$fn
downloadUrl=https://maven.minecraftforge.net/net/minecraftforge/forge/$fn
log "...trying $downloadUrl"
if curl -o $FORGE_INSTALLER -fsSL $downloadUrl; then
break
@@ -97,7 +99,11 @@ if [ ! -e $installMarker ]; then
log "Finding installed server jar..."
unset -v latest
for file in *forge*.jar; do
[[ $file =~ installer ]] || [[ $file -nt $latest ]] && latest=$file
if ! [[ $file =~ installer ]]; then
if [[ -z $latest ]] || [[ $file -nt $latest ]]; then
latest=$file
fi
fi
done
if [[ -z $latest ]]; then
log "Unable to derive server jar for Forge"

64
start-deployLimbo Normal file
View File

@@ -0,0 +1,64 @@
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
. ${SCRIPTS:-/}start-utils
isDebugging && set -x
: ${LIMBO_BUILD:=LATEST}
: ${FORCE_REDOWNLOAD:=false}
: ${LIMBO_SCHEMA_FILENAME:=default.schem}
: ${LEVEL:=Default;${LIMBO_SCHEMA_FILENAME}}
# defaults to localhost, if this is not set
: ${SERVER_IP:=0.0.0.0}
export LEVEL SERVER_IP
if [[ ${LIMBO_BUILD^^} == LATEST ]]; then
LIMBO_BUILD=lastStableBuild
fi
baseUrl="https://ci.loohpjames.com/job/Limbo/${LIMBO_BUILD}"
buildInfoUrl="${baseUrl}/api/json"
buildJson=$(curl -fsSL "${buildInfoUrl}")
if [ $? != 0 ]; then
log "ERROR failed to get build info from ${buildInfoUrl} (status=$?)"
exit 1
fi
if [[ ${LIMBO_BUILD} = lastStableBuild ]]; then
LIMBO_BUILD=$(jq -r '.number' <<<${buildJson})
log "Resolved latest Limbo build to ${LIMBO_BUILD}"
fi
artifactPath=$(jq -r '.artifacts[] | select(.fileName|test("^Limbo-")) | .relativePath' <<<${buildJson})
defaultSchemaPath=$(jq -r '.artifacts[] | select(.fileName|test(".*\\.schem")) | .relativePath' <<<${buildJson})
export SERVER="limbo-${LIMBO_BUILD}.jar"
if [ ! -f "$SERVER" ] || isTrue "$FORCE_REDOWNLOAD"; then
downloadUrl="${baseUrl}/artifact/${artifactPath}"
log "Downloading Limbo from $downloadUrl ..."
if ! curl -fsSL -o "$SERVER" "$downloadUrl"; then
log "ERROR: failed to download from $downloadUrl (status=$?)"
exit 3
fi
fi
if [ ! -f "${LIMBO_SCHEMA_FILENAME}" ]; then
log "Downloading default schem file"
if ! curl -o "${LIMBO_SCHEMA_FILENAME}" -fsSL "${baseUrl}/artifact/${defaultSchemaPath}"; then
log "ERROR: failed to download schema file $baseUrl (status=$?)"
exit 3
fi
fi
if [[ ${LEVEL} != *\;* ]]; then
LEVEL="${LEVEL};${LIMBO_SCHEMA_FILENAME}"
fi
export LEVEL
export SKIP_LOG4J_CONFIG=true
# Continue to Final Setup
exec ${SCRIPTS:-/}start-finalSetupWorld $@

View File

@@ -1,18 +1,93 @@
#!/bin/bash
. ${SCRIPTS:-/}start-utils
export SKIP_LOG4J_CONFIG=true
export SERVER="/data/magma-server-${VANILLA_VERSION}.jar"
isDebugging && set -x
# Always download since new updates of each base version are published frequently
if ! curl -o /data/magma-server-${VANILLA_VERSION}.jar -fsSL \
https://api.magmafoundation.org/api/resources/Magma/${VANILLA_VERSION}/stable/latest/download; then
log "ERROR unable to download version ${VANILLA_VERSION} of Magma"
log " Check https://magmafoundation.org/ for available versions"
: ${VANILLA_VERSION?}
# stable, dev
: ${MAGMA_CHANNEL:=stable}
magmaDownloadServer() {
url=${1?}
tagName=${2?}
markerFile=${3?}
export SERVER="/data/magma-server-${VANILLA_VERSION}.jar"
log "Downloading Magma server file for ${VANILLA_VERSION} @ ${tagName}"
if ! curl -o /data/magma-server-${VANILLA_VERSION}.jar -fsSL "$url"; then
log "ERROR failed to download Magma server from $url (status=$?)"
exit 1
fi
echo -n "$SERVER" > "$markerFile"
}
magmaHandleInstaller() {
url=${1?}
tagName=${2?}
markerFile=${3?}
installerFile="magma-installer-${VANILLA_VERSION}-${tagName}.jar"
log "Downloading Magma installer file for ${VANILLA_VERSION} @ ${tagName}"
if ! curl -o "$installerFile" -fsSL "$url"; then
log "ERROR failed to download Magma installer from $url (status=$?)"
exit 1
fi
echo "forge" > "$markerFile"
export FORGE_INSTALLER="$installerFile"
export FORGE_INSTALLER_CUSTOM_VERSION="$tagName"
# now hand off the rest to forge
exec ${SCRIPTS:-/}start-deployForge "$@"
}
latestMeta=$(curl -fsSL https://api.magmafoundation.org/api/resources/Magma/${VANILLA_VERSION}/${MAGMA_CHANNEL}/latest || exit $?)
if [ $? != 0 ]; then
log "ERROR failed to locate latest Magma info for ${VANILLA_VERSION} in channel ${MAGMA_CHANNEL} (error=$?)"
exit 1
fi
export SKIP_LOG4J_CONFIG=true
tagName=$(echo "${latestMeta}" | jq -r '.tag_name')
markerFile=".magma-installed-${VANILLA_VERSION}-${tagName}"
if [ -f "${markerFile}" ]; then
installedTagName=$(cat "${markerFile}")
fi
if [ ! -f "${markerFile}" ]; then
if versionLessThan 1.16; then
assetType=server
else
assetType=installer
fi
assetUrl=$(echo "${latestMeta}" | jq -r ".assets | .[].browser_download_url | select(test(\"${assetType}\"))")
if [ $? != 0 ] || [ -z "$assetUrl" ]; then
log "ERROR failed to extract ${assetType} asset type for ${VANILLA_VERSION} in channel ${MAGMA_CHANNEL}"
exit 1
fi
if [[ ${assetType} = server ]]; then
magmaDownloadServer "$assetUrl" "$tagName" "$markerFile"
else
magmaHandleInstaller "$assetUrl" "$tagName" "$markerFile"
fi
else
export SERVER=$(cat "${markerFile}")
if [[ $SERVER == "forge" ]]; then
export FORGE_INSTALLER="magma-installer-${VANILLA_VERSION}-${tagName}.jar"
export FORGE_INSTALLER_CUSTOM_VERSION="$tagName"
# now hand off the rest to forge
exec ${SCRIPTS:-/}start-deployForge "$@"
fi
fi
# Continue to Final Setup
exec ${SCRIPTS:-/}start-finalSetupWorld $@

View File

@@ -6,26 +6,27 @@ set -e
isDebugging && set -x
requireVar VANILLA_VERSION
: ${MOHIST_BUILD:=lastSuccessfulBuild}
mohistJobs=https://ci.codemc.io/job/Mohist-Community/job/
mohistJobs=https://ci.codemc.io/job/MohistMC/job/
mohistJob=${mohistJobs}Mohist-${VANILLA_VERSION}/
if ! curl -X HEAD -o /dev/null -fsSL "${mohistJob}"; then
log "ERROR: mohist builds do not exist for ${VANILLA_VERSION}"
log " check https://ci.codemc.io/job/Mohist-Community/ for available versions"
log " check https://ci.codemc.io/job/MohistMC/ for available versions"
log " and set VERSION accordingly"
exit 1
fi
latestBuildRelPath=$(
curl -fsSL "${mohistJob}lastSuccessfulBuild/api/json" |
buildRelPath=$(
curl -fsSL "${mohistJob}${MOHIST_BUILD}/api/json" |
jq -r '.artifacts[0].relativePath'
)
baseName=$(basename "${latestBuildRelPath}")
baseName=$(basename "${buildRelPath}")
if [[ ${baseName} != *-server.jar* ]]; then
log "ERROR: mohist build for ${VANILLA_VERSION} is not a valid server jar, found ${baseName}"
log " check https://ci.codemc.io/job/Mohist-Community/ for available versions"
log " check https://ci.codemc.io/job/MohistMC/ for available versions"
log " and set VERSION accordingly"
exit 1
fi
@@ -34,7 +35,7 @@ export SERVER="/data/${baseName}"
if [ ! -f ${SERVER} ]; then
log "Downloading ${baseName}"
curl -o "${SERVER}" -fsSL "${mohistJob}lastSuccessfulBuild/artifact/${latestBuildRelPath}"
curl -o "${SERVER}" -fsSL "${mohistJob}${MOHIST_BUILD}/artifact/${buildRelPath}"
fi
export SKIP_LOG4J_CONFIG=true

View File

@@ -57,8 +57,10 @@ else
fi
log "Removing old PaperMC versions ..."
paperJarSearchString=${SERVER/$build/[0-9]*}
find . -maxdepth 1 -name "$paperJarSearchString" ! -name "$SERVER" -delete -print
shopt -s nullglob
for f in paper-*.jar; do
[[ $f != $SERVER ]] && rm $f
done
log "Downloading PaperMC $VANILLA_VERSION (build $build) ..."
curl -fsSL -o "$SERVER" "${zarg[@]}" \
@@ -74,5 +76,4 @@ fi
export TYPE=SPIGOT
export SKIP_LOG4J_CONFIG=true
# Continue to Final Setup
exec ${SCRIPTS:-/}start-finalSetupWorld "$@"
exec ${SCRIPTS:-/}start-spiget "$@"

View File

@@ -10,7 +10,7 @@ isDebugging && set -x
: ${FORCE_REDOWNLOAD:=false}
if [[ ${PURPUR_BUILD} == LATEST ]]; then
PURPUR_BUILD=$(curl -fsSL "https://purpur.pl3x.net/api/v1/purpur/${VANILLA_VERSION}" |
PURPUR_BUILD=$(curl -fsSL "https://api.pl3x.net/v2/purpur/${VANILLA_VERSION}" |
jq -r '.builds.latest' || echo "")
if [[ -z ${PURPUR_BUILD} ]]; then
log "ERROR: Failed to locate a Purpur build for ${VANILLA_VERSION}."
@@ -22,7 +22,7 @@ fi
export SERVER="purpur-${VANILLA_VERSION}-${PURPUR_BUILD}.jar"
if [ ! -f "$SERVER" ] || isTrue "$FORCE_REDOWNLOAD"; then
downloadUrl="https://purpur.pl3x.net/api/v1/purpur/${VANILLA_VERSION}/${PURPUR_BUILD}/download"
downloadUrl="https://api.pl3x.net/v2/purpur/${VANILLA_VERSION}/${PURPUR_BUILD}/download"
log "Downloading Purpur from $downloadUrl ..."
if ! curl -fsSL -o "$SERVER" "$downloadUrl"; then
log "ERROR: failed to download from $downloadUrl (status=$?)"
@@ -34,5 +34,4 @@ fi
export TYPE=SPIGOT
export SKIP_LOG4J_CONFIG=true
# Continue to Final Setup
exec ${SCRIPTS:-/}start-finalSetupWorld $@
exec ${SCRIPTS:-/}start-spiget "$@"

View File

@@ -3,16 +3,16 @@
. ${SCRIPTS:-/}start-utils
if [ "${VERSION}" != "LATEST" ]; then
log "ERROR: Tunity server type only supports VERSION=LATEST"
log "ERROR: Tuinity server type only supports VERSION=LATEST"
exit 1
fi
: ${TUNITY_BUILD:=lastSuccessfulBuild}
export SERVER=tunity-${VANILLA_VERSION}-${TUNITY_BUILD}.jar
: ${TUINITY_BUILD:=lastSuccessfulBuild}
export SERVER=tuinity-${VANILLA_VERSION}-${TUINITY_BUILD}.jar
if [ ! -f "$SERVER" ] || [ -n "$FORCE_REDOWNLOAD" ]; then
downloadUrl="https://ci.codemc.io/job/Spottedleaf/job/Tuinity/${TUNITY_BUILD}/artifact/tuinity-paperclip.jar"
log "Downloading Tunity (build $TUNITY_BUILD) from $downloadUrl ..."
downloadUrl="https://ci.codemc.io/job/Spottedleaf/job/Tuinity/${TUINITY_BUILD}/artifact/tuinity-paperclip.jar"
log "Downloading Tuinity (build $TUINITY_BUILD) from $downloadUrl ..."
curl -fsSL -o "$SERVER" "$downloadUrl"
if [ ! -f "$SERVER" ]; then
log "ERROR: failed to download from $downloadUrl (status=$?)"
@@ -23,5 +23,4 @@ fi
# Normalize on Spigot for later operations
export TYPE=SPIGOT
# Continue to Final Setup
exec ${SCRIPTS:-/}start-finalSetupWorld $@
exec ${SCRIPTS:-/}start-spiget "$@"

View File

@@ -6,7 +6,7 @@ IFS=$'\n\t'
isDebugging && set -x
: ${VANILLA_VERSION:?}
: ${RELEASE:=stable}
: ${RELEASE:=latest}
: ${FORCE_REDOWNLOAD:=false}
requireEnum RELEASE stable latest

View File

@@ -5,7 +5,7 @@
: ${ENV_VARIABLE_PREFIX:=CFG_}
if isTrue "${REPLACE_ENV_VARIABLES}"; then
log "Replacing env variables in configs that match the prefix $ENV_VARIABLE_PREFIX..."
log "Replacing env variables in configs that match the prefix $ENV_VARIABLE_PREFIX ..."
# File excludes
fileExcludes=
@@ -22,28 +22,30 @@ if isTrue "${REPLACE_ENV_VARIABLES}"; then
isDebugging && echo "Using find file exclusions: $fileExcludes"
isDebugging && echo "Using find directory exclusions: $dirExcludes"
while IFS='=' read -r name value ; do
for name in $(compgen -v $ENV_VARIABLE_PREFIX); do
# check if name of env variable matches the prefix
# sanity check environment variables to avoid code injections
if [[ "$name" = $ENV_VARIABLE_PREFIX* ]] \
&& [[ $value =~ ^[0-9a-zA-Z_:/=?.+\-]*$ ]] \
&& [[ $name =~ ^[0-9a-zA-Z_\-]*$ ]]; then
# Read content from file environment
if [[ $name = *"_FILE" ]] && [[ -f $value ]]; then
name="${name/_FILE/}"
value=$(<$value)
fi
log "Replacing $name with $value ..."
find /data/ \
$dirExcludes \
-type f \
\( -name "*.yml" -or -name "*.yaml" -or -name "*.txt" -or -name "*.cfg" \
-or -name "*.conf" -or -name "*.properties" \) \
$fileExcludes \
-exec sed -i 's#${'"$name"'}#'"$value"'#g' {} \;
# Read content from file environment
if [[ $name = *"_FILE" ]]; then
value=$(<${!name})
name="${name%_FILE}"
else
value=${!name}
fi
done < <(env)
log "Replacing $name with $value ..."
value=${value//\\/\\\\}
value=${value//#/\\#}
find /data/ \
$dirExcludes \
-type f \
\( -name "*.yml" -or -name "*.yaml" -or -name "*.txt" -or -name "*.cfg" \
-or -name "*.conf" -or -name "*.properties" -or -name "*.hjson" -or -name "*.json" \) \
$fileExcludes \
-exec sed -i 's#${'"$name"'}#'"$value"'#g' {} \;
done
fi
exec ${SCRIPTS:-/}start-minecraftFinalSetup $@

View File

@@ -11,21 +11,9 @@ fi
CURSE_URL_BASE=${CURSE_URL_BASE:-https://minecraft.curseforge.com/projects}
# Remove old mods/plugins
if isTrue ${REMOVE_OLD_MODS}; then
remove_mods_dest="/data/mods"
case ${TYPE} in
SPIGOT|BUKKIT|PAPER)
remove_mods_dest="/data/plugins"
;;
esac
# only try to remove existing mods dir
if [ -d "$remove_mods_dest" ]; then
log "Removing old mods in $remove_mods_dest..."
find $remove_mods_dest -mindepth 1 -maxdepth ${REMOVE_OLD_MODS_DEPTH:-16} -wholename "${REMOVE_OLD_MODS_INCLUDE:-*}" -not -wholename "${REMOVE_OLD_MODS_EXCLUDE}" -delete
else
log "Directory $remove_mods_dest does not exist; removing nothing."
fi
if isTrue ${REMOVE_OLD_MODS:-false}; then
removeOldMods /data/mods
removeOldMods /data/plugins
fi
# If supplied with a URL for a modpack (simple zip of jars), download it and unpack
@@ -37,35 +25,39 @@ if [[ "$MODPACK" ]]; then
downloadUrl=$(curl -Ls -o /dev/null -w %{effective_url} $MODPACK)
if ! [[ $downloadUrl == *.zip ]]; then
log "ERROR Invalid URL given for MODPACK: $downloadUrl resolved from $MODPACK"
log " Must be HTTP or HTTPS and a ZIP file"
log " Must be HTTP, HTTPS or FTP and a ZIP file"
exit 1
fi
fi
log "Downloading mod/plugin pack via HTTP"
log "Downloading mod/plugin pack"
log " from $downloadUrl ..."
if ! curl -sSL -o /tmp/modpack.zip "$downloadUrl"; then
log "ERROR: failed to download from $downloadUrl"
exit 2
fi
if [ "$TYPE" = "SPIGOT" ]; then
mkdir -p /data/plugins
if ! unzip -o -d /data/plugins /tmp/modpack.zip; then
log "ERROR: failed to unzip the modpack from $downloadUrl"
fi
else
mkdir -p /data/mods
if ! unzip -o -d /data/mods /tmp/modpack.zip; then
log "ERROR: failed to unzip the modpack from $downloadUrl"
fi
elif [[ "$MODPACK" =~ .*\.zip ]]; then
if ! cp $MODPACK /tmp/modpack.zip; then
log "ERROR: failed to copy from $MODPACK"
exit 2
fi
rm -f /tmp/modpack.zip
else
log "ERROR Invalid URL given for MODPACK: $MODPACK"
log "ERROR Invalid URL or Path given for MODPACK: $MODPACK"
exit 1
fi
if [ "$TYPE" = "SPIGOT" ]; then
mkdir -p /data/plugins
if ! unzip -o -d /data/plugins /tmp/modpack.zip; then
log "ERROR: failed to unzip the modpack from $downloadUrl"
fi
else
mkdir -p /data/mods
if ! unzip -o -d /data/mods /tmp/modpack.zip; then
log "ERROR: failed to unzip the modpack from $downloadUrl"
fi
fi
rm -f /tmp/modpack.zip
fi
# If supplied with a URL for a plugin download it.
@@ -99,8 +91,18 @@ if [[ "$MODS" ]]; then
exit 2
fi
fi
elif [[ -f "$i" && "$i" =~ .*\.jar ]]; then
log "Copying plugin located at $i ..."
out_file=$(basename "$i")
if ! cp "$i" "${out_dir}/$out_file"; then
log "ERROR: failed to copy from $i into $out_dir"
exit 2
fi
elif [[ -d "$i" ]]; then
log "Copying plugin jars from $i ..."
cp "$i"/*.jar "${out_dir}"
else
log "ERROR Invalid URL given in MODS: $i"
log "ERROR Invalid URL or path given in MODS: $i"
exit 2
fi
done
@@ -152,7 +154,10 @@ fi
if [[ "${GENERIC_PACK}" ]]; then
if isURL "${GENERIC_PACK}"; then
log "Downloading generic pack ..."
curl -fsSL -o /tmp/generic_pack.zip "${GENERIC_PACK}"
if ! curl -fsSL -o /tmp/generic_pack.zip "${GENERIC_PACK}"; then
log "ERROR: failed to download ${GENERIC_PACK}"
exit 2
fi
GENERIC_PACK=/tmp/generic_pack.zip
fi

View File

@@ -21,18 +21,20 @@ if [ -d /plugins ]; then
fi
# If any modules have been provided, copy them over
: ${COPY_MODS_DEST:="/data/mods"}
if [ -d /mods ]; then
log "Copying any mods over..."
mkdir -p /data/mods
rsync -a --out-format="update:%f:Last Modified %M" "${rsyncArgs[@]}" --prune-empty-dirs --update /mods /data
mkdir -p "${COPY_MODS_DEST}"
rsync -a --out-format="update:%f:Last Modified %M" "${rsyncArgs[@]}" --prune-empty-dirs --update /mods/ "${COPY_MODS_DEST}"
fi
: ${COPY_CONFIG_DEST:="/data/config"}
if [ -d /config ]; then
log "Copying any configs from /config to $COPY_CONFIG_DEST"
mkdir -p $COPY_CONFIG_DEST
rsync -a --out-format="update:%f:Last Modified %M" "${rsyncArgs[@]}" --prune-empty-dirs --update /config/ $COPY_CONFIG_DEST
log "Copying any configs from /config to ${COPY_CONFIG_DEST}"
mkdir -p "${COPY_CONFIG_DEST}"
rsync -a --out-format="update:%f:Last Modified %M" "${rsyncArgs[@]}" --prune-empty-dirs --update /config/ "${COPY_CONFIG_DEST}"
fi
exec ${SCRIPTS:-/}start-finalSetupServerProperties $@

View File

@@ -2,6 +2,8 @@
. ${SCRIPTS:-/}start-utils
: ${SERVER_PROPERTIES:=/data/server.properties}
# FUNCTIONS
function setServerProp {
local prop=$1
@@ -12,18 +14,27 @@ function setServerProp {
TRUE|FALSE)
var=${var,,} ;;
esac
log "Setting ${prop} to '${var}' in ${SERVER_PROPERTIES}"
sed -i "/^${prop}\s*=/ c ${prop}=${var//\\/\\\\}" "$SERVER_PROPERTIES"
if grep "${prop}" "$SERVER_PROPERTIES" > /dev/null; then
log "Setting ${prop} to '${var}' in ${SERVER_PROPERTIES}"
sed -i "/^${prop}\s*=/ c ${prop}=${var//\\/\\\\}" "$SERVER_PROPERTIES"
else
log "Adding ${prop} with '${var}' in ${SERVER_PROPERTIES}"
echo "${prop}=${var}" >> "$SERVER_PROPERTIES"
fi
else
log "Skip setting ${prop}"
isDebugging && log "Skip setting ${prop}"
fi
}
function customizeServerProps {
if [ -n "$WHITELIST" ]; then
if [ -n "$WHITELIST" ] || isTrue ${ENABLE_WHITELIST:-false}; then
log "Creating whitelist"
setServerProp "whitelist" "true"
setServerProp "white-list" "true"
else
log "Disabling whitelist"
setServerProp "whitelist" "false"
setServerProp "white-list" "false"
fi
# If not provided, generate a reasonable default message-of-the-day,
@@ -45,7 +56,7 @@ function customizeServerProps {
setServerProp "server-name" "$SERVER_NAME"
setServerProp "server-ip" "$SERVER_IP"
setServerProp "server-port" "$SERVER_PORT"
setServerProp "motd" "$MOTD"
setServerProp "motd" "$(echo $MOTD | java -jar /usr/share/asciify/asciify.jar)"
setServerProp "allow-nether" "$ALLOW_NETHER"
setServerProp "announce-player-achievements" "$ANNOUNCE_PLAYER_ACHIEVEMENTS"
setServerProp "enable-command-block" "$ENABLE_COMMAND_BLOCK"
@@ -170,8 +181,8 @@ function customizeServerProps {
}
# Deploy server.properties file
if [[ ${TYPE} == "FEED-THE-BEAST" ]]; then
export SERVER_PROPERTIES=${FTB_DIR}/server.properties
if [[ ${TYPE} == "CURSEFORGE" ]]; then
export SERVER_PROPERTIES="${FTB_DIR}/server.properties"
log "detected FTB, changing properties path to ${SERVER_PROPERTIES}"
fi
@@ -203,7 +214,7 @@ fi
if isDebugging; then
log "DEBUG Dumping server.properties"
cat /data/server.properties
cat "${SERVER_PROPERTIES}"
fi
exec ${SCRIPTS:-/}start-finalSetupEnvVariables $@

View File

@@ -7,13 +7,20 @@ isDebugging && set -x
: ${LEVEL:=world}
export LEVEL
if [ $TYPE = "FEED-THE-BEAST" ]; then
if [ $TYPE = "CURSEFORGE" ]; then
worldDest=$FTB_DIR/$LEVEL
else
worldDest=/data/$LEVEL
fi
if [[ "$WORLD" ]] && ( isTrue "${FORCE_WORLD_COPY}" || [ ! -d "$worldDest" ] ); then
if isTrue "${FORCE_WORLD_COPY}"; then
log "Removing existing world data in $worldDest ${worldDest}_nether ${worldDest}_the_end"
rm -rf "$worldDest" \
"${worldDest}_nether" \
"${worldDest}_the_end"
fi
if isURL $WORLD; then
curl -fsSL "$WORLD" -o /tmp/world.zip
zipSrc=/tmp/world.zip
@@ -59,8 +66,8 @@ if [[ "$WORLD" ]] && ( isTrue "${FORCE_WORLD_COPY}" || [ ! -d "$worldDest" ] );
if [ "$TYPE" = "SPIGOT" ]; then
# Reorganise if a Spigot server
log "Moving End and Nether maps to Spigot location"
[ -d "$worldDest/DIM1" ] && mv -f "$worldDest/DIM1" "/data/${LEVEL}_the_end"
[ -d "$worldDest/DIM-1" ] && mv -f "$worldDest/DIM-1" "/data/${LEVEL}_nether"
[ -d "$worldDest/DIM1" ] && mv -f "$worldDest/DIM1" "${worldDest}_the_end"
[ -d "$worldDest/DIM-1" ] && mv -f "$worldDest/DIM-1" "${worldDest}_nether"
fi
fi

View File

@@ -1,27 +1,26 @@
#!/bin/bash
. ${SCRIPTS:-/}start-utils
isDebugging && set -x
if [ -n "$OPS" ]; then
log "Updating ops"
rm -f /data/ops.txt.converted
echo $OPS | awk -v RS=, '{print}' > /data/ops.txt
if isTrue "${OVERRIDE_OPS}"; then
log "Recreating ops.json file at server startup"
rm -f /data/ops.json
fi
fi
if isTrue "${OVERRIDE_OPS}"; then
log "Recreating ops.json file at server startup"
rm -f /data/ops.json
fi
if [ -n "$WHITELIST" ]; then
log "Updating whitelist"
rm -f /data/white-list.txt.converted
echo $WHITELIST | awk -v RS=, '{print}' > /data/white-list.txt
if isTrue "${OVERRIDE_WHITELIST}"; then
log "Recreating whitelist.json file at server startup"
rm -f /data/whitelist.json
fi
fi
if isTrue "${OVERRIDE_WHITELIST}"; then
log "Recreating whitelist.json file at server startup"
rm -f /data/whitelist.json
fi
if [ -n "$ICON" ]; then
@@ -39,16 +38,16 @@ if [ -n "$ICON" ]; then
fi
fi
if ! isTrue ${SKIP_LOG4J_CONFIG}; then
# Set up log configuration
LOGFILE="/data/log4j2.xml"
if [ ! -e "$LOGFILE" ]; then
log "Creating log4j2.xml in ${LOGFILE}"
cp /tmp/log4j2.xml "$LOGFILE"
else
log "log4j2.xml already created, skipping"
fi
JVM_OPTS="-Dlog4j.configurationFile=/data/log4j2.xml ${JVM_OPTS}"
if isTrue ${ENABLE_ROLLING_LOGS:-false}; then
# Set up log configuration
LOGFILE="/data/log4j2.xml"
if [ ! -e "$LOGFILE" ]; then
log "Creating log4j2.xml in ${LOGFILE}"
cp /tmp/log4j2.xml "$LOGFILE"
else
log "log4j2.xml already created, skipping"
fi
JVM_OPTS="-Dlog4j.configurationFile=/data/log4j2.xml ${JVM_OPTS}"
fi
# Make sure files exist and are valid JSON (for pre-1.12 to 1.12 upgrades)
@@ -61,15 +60,14 @@ for j in $JSON_FILES; do
fi
done
EXTRA_ARGS=""
# Optional disable console
if versionLessThan 1.14 && [[ ${CONSOLE,,} = false ]]; then
EXTRA_ARGS+="--noconsole"
EXTRA_ARGS+=" --noconsole"
fi
# Optional disable GUI for headless servers
if [[ ${GUI} = false || ${GUI} = FALSE ]]; then
EXTRA_ARGS="${EXTRA_ARGS} nogui"
EXTRA_ARGS+=" nogui"
fi
# put these prior JVM_OPTS at the end to give any memory settings there higher precedence
@@ -84,7 +82,6 @@ if [ -n "$JVM_DD_OPTS" ]; then
fi
if isTrue ${ENABLE_JMX}; then
: ${JMX_HOST:=0.0.0.0}
: ${JMX_PORT:=7091}
JVM_OPTS="${JVM_OPTS}
-Dcom.sun.management.jmxremote.local.only=false
@@ -92,8 +89,8 @@ if isTrue ${ENABLE_JMX}; then
-Dcom.sun.management.jmxremote.rmi.port=${JMX_PORT}
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.host=${JMX_HOST}
-Djava.rmi.server.hostname=${JMX_HOST}"
-Dcom.sun.management.jmxremote.host=${JMX_BINDING:-0.0.0.0}
-Djava.rmi.server.hostname=${JMX_HOST:-localhost}"
log "JMX is enabled. Make sure you have port forwarding for ${JMX_PORT}"
fi
@@ -147,6 +144,13 @@ if isTrue "${USE_LARGE_PAGES}"; then
"
fi
if isTrue "${USE_FLARE_FLAGS}"; then
JVM_XX_OPTS="${JVM_XX_OPTS}
-XX:+UnlockDiagnosticVMOptions
-XX:+DebugNonSafepoints
"
fi
if isTrue "${DEBUG_MEMORY}"; then
log "Memory usage and availability (in MB)"
uname -a
@@ -168,12 +172,11 @@ function copyFilesForCurseForge() {
cp -f /data/eula.txt "${FTB_DIR}/"
}
if ! which java > /dev/null; then
log "Fixing PATH to include java"
PATH="${PATH}:/usr/bin"
mcServerRunnerArgs="--stop-duration ${STOP_DURATION:-60}s"
if [[ ${STOP_SERVER_ANNOUNCE_DELAY} ]]; then
mcServerRunnerArgs="${mcServerRunnerArgs} --stop-server-announce-delay ${STOP_SERVER_ANNOUNCE_DELAY}s"
fi
mcServerRunnerArgs="--stop-duration ${STOP_DURATION:-60}s"
if [[ ${TYPE} == "CURSE_INSTANCE" ]]; then
if isTrue ${DEBUG_EXEC}; then
set -x
@@ -208,10 +211,28 @@ EOF
cd "${FTB_DIR}"
log "Running FTB ${FTB_SERVER_START} in ${FTB_DIR} ..."
finalArgs=(
"${FTB_SERVER_START}"
)
if isTrue ${SETUP_ONLY:=false}; then
echo "SETUP_ONLY: ${finalArgs[@]}"
exit
fi
if isTrue ${DEBUG_EXEC}; then
set -x
fi
exec mc-server-runner ${mcServerRunnerArgs} "${FTB_SERVER_START}"
if isTrue ${EXEC_DIRECTLY:-false}; then
"${finalArgs[@]}"
else
exec mc-server-runner ${mcServerRunnerArgs} "${finalArgs[@]}"
fi
elif [[ -x run.sh ]]; then
log "Using Forge supplied run.sh script..."
echo $JVM_XX_OPTS $JVM_OPTS $expandedDOpts > user_jvm_args.txt
exec mc-server-runner ${mcServerRunnerArgs} --shell bash run.sh
else
# If we have a bootstrap.txt file... feed that in to the server stdin
if [ -f /data/bootstrap.txt ]; then
@@ -219,8 +240,28 @@ else
fi
log "Starting the Minecraft server..."
finalArgs=(
$JVM_XX_OPTS
$JVM_OPTS
$expandedDOpts
-jar $SERVER
"$@" $EXTRA_ARGS
)
if isTrue ${SETUP_ONLY:=false}; then
echo "SETUP_ONLY: java ${finalArgs[@]}"
exit
fi
if isTrue ${DEBUG_EXEC}; then
set -x
fi
exec mc-server-runner ${bootstrapArgs} ${mcServerRunnerArgs} java $JVM_XX_OPTS $JVM_OPTS $expandedDOpts -jar $SERVER "$@" $EXTRA_ARGS
if isTrue ${EXEC_DIRECTLY:-false}; then
exec java "${finalArgs[@]}"
else
exec mc-server-runner ${bootstrapArgs} ${mcServerRunnerArgs} java "${finalArgs[@]}"
fi
fi

105
start-spiget Normal file
View File

@@ -0,0 +1,105 @@
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
. ${SCRIPTS:-/}start-utils
handleDebugMode
: ${SPIGET_RESOURCES:=}
: ${SPIGET_DOWNLOAD_TOLERANCE:=5} # in minutes
containsJars() {
file=${1?}
pat='\.jar$'
while read -r line; do
if [[ $line =~ $pat ]]; then
return 0
fi
done <<<$(unzip -l "$file")
return 1
}
getResourceFromSpiget() {
resource=${1?}
log "Downloading resource ${resource} ..."
mkdir -p /data/plugins
versionfile="/data/plugins/.${resource}-version.json"
versionfileNew="/tmp/.${resource}-version.json"
if [ -f "$versionfile" ]; then
if [[ -n $(find "$versionfile" -mmin +${SPIGET_DOWNLOAD_TOLERANCE}) ]]; then
urlVersion="https://api.spiget.org/v2/resources/${resource}/versions/latest"
if ! curl -o "${versionfileNew}" -fsSL -H "User-Agent: itzg/minecraft-server" "${extraCurlArgs[@]}" "${urlVersion}"; then
log "ERROR failed to download resource version meta data '${resource}' from ${urlVersion}"
exit 2
fi
installedVersion=$(jq -r '.name' $versionfile)
newVersion=$(jq -r '.name' $versionfileNew)
if [ "$installedVersion" = "$newVersion" ]; then
log "resource '${resource}' not downloaded because installed version '${installedVersion}' already up to date ('${newVersion}')"
mv "${versionfileNew}" "${versionfile}"
else
if downloadResourceFromSpiget "${resource}"; then
mv "${versionfileNew}" "${versionfile}"
fi
fi
else
log "resource '${resource}' not checked because version meta file newer than '${SPIGET_DOWNLOAD_TOLERANCE}' minutes"
fi
else
if downloadResourceFromSpiget "${resource}"; then
urlVersion="https://api.spiget.org/v2/resources/${resource}/versions/latest"
if ! curl -o "${versionfileNew}" -fsSL -H "User-Agent: itzg/minecraft-server" "${extraCurlArgs[@]}" "${urlVersion}"; then
log "ERROR failed to download resource version meta data '${resource}' from ${urlVersion}"
exit 2
fi
mv "${versionfileNew}" "${versionfile}"
fi
fi
}
downloadResourceFromSpiget() {
resource=${1?}
tmpfile="/tmp/${resource}.zip"
url="https://api.spiget.org/v2/resources/${resource}/download"
if ! curl -o "${tmpfile}" -fsSL -H "User-Agent: itzg/minecraft-server" "${extraCurlArgs[@]}" "${url}"; then
log "ERROR failed to download resource '${resource}' from ${url}"
exit 2
fi
if containsJars "${tmpfile}"; then
log "Extracting contents of resource ${resource} into plugins"
unzip -o -q -d /data/plugins "${tmpfile}"
rm "${tmpfile}"
else
log "Moving resource ${resource} into plugins"
mv "${tmpfile}" "/data/plugins/${resource}.jar"
fi
}
if [[ ${SPIGET_RESOURCES} ]]; then
if isTrue ${REMOVE_OLD_MODS:-false}; then
removeOldMods /data/plugins
REMOVE_OLD_MODS=false
fi
log "Getting plugins via Spiget"
IFS=',' read -r -a resources <<<"${SPIGET_RESOURCES}"
for resource in "${resources[@]}"; do
getResourceFromSpiget "${resource}"
done
fi
# Continue to Final Setup
exec ${SCRIPTS:-/}start-finalSetupWorld $@

View File

@@ -11,7 +11,7 @@ function join_by() {
function isURL() {
local value=$1
if [[ ${value:0:8} == "https://" || ${value:0:7} == "http://" ]]; then
if [[ ${value:0:8} == "https://" || ${value:0:7} == "http://" || ${value:0:6} == "ftp://" ]]; then
return 0
else
return 1
@@ -57,13 +57,20 @@ function isTrue() {
}
function isDebugging() {
if [[ -v DEBUG ]] && [[ ${DEBUG^^} == TRUE ]]; then
if isTrue "${DEBUG:-false}"; then
return 0
else
return 1
fi
}
function handleDebugMode() {
if isDebugging; then
set -x
extraCurlArgs=(-v)
fi
}
function debug() {
if isDebugging; then
log "DEBUG: $*"
@@ -167,3 +174,9 @@ eula=${EULA,,}
exit 2
fi
}
function removeOldMods {
if [ -d "$1" ]; then
find "$1" -mindepth 1 -maxdepth ${REMOVE_OLD_MODS_DEPTH:-16} -wholename "${REMOVE_OLD_MODS_INCLUDE:-*}" -not -wholename "${REMOVE_OLD_MODS_EXCLUDE:-}" -delete
fi
}

View File

@@ -10,6 +10,9 @@ services:
restart: "no"
build:
context: ..
args:
TARGETOS: linux
TARGETARCH: amd64
cache_from:
- itzg/minecraft-server:latest
environment: