mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-17 15:13:55 +00:00
Compare commits
1343 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c61df8d32e | ||
|
|
c228465ff1 | ||
|
|
1b44fc87dd | ||
|
|
7076fb83da | ||
|
|
5338f1e0f4 | ||
|
|
8ab5542c82 | ||
|
|
96a21ff6e6 | ||
|
|
a57d678fdd | ||
|
|
d4692d2d07 | ||
|
|
a1e4657e62 | ||
|
|
fabe14db49 | ||
|
|
4d3464f3f1 | ||
|
|
d6de14123b | ||
|
|
247855c2cf | ||
|
|
364f73c9d9 | ||
|
|
7723cb0a41 | ||
|
|
0e0bb09533 | ||
|
|
417a65a3af | ||
|
|
3c131f853d | ||
|
|
cca9b3e21d | ||
|
|
e81cddd108 | ||
|
|
1bc566c69a | ||
|
|
4f8104737e | ||
|
|
de43778eb9 | ||
|
|
3310f0a069 | ||
|
|
05b8899de6 | ||
|
|
7a85cb5f39 | ||
|
|
380ea202dc | ||
|
|
83d99f35f9 | ||
|
|
0f85646c69 | ||
|
|
75afcc2fce | ||
|
|
94b2d8996d | ||
|
|
72b6eeba75 | ||
|
|
68a514e589 | ||
|
|
2df678e96a | ||
|
|
8dbfff1873 | ||
|
|
c83705157c | ||
|
|
c5d4e4d8ca | ||
|
|
e70525b2ff | ||
|
|
c5e91ff823 | ||
|
|
5cec41319d | ||
|
|
eb22d4cadc | ||
|
|
a0a046f9f6 | ||
|
|
9210044b8d | ||
|
|
df203d4b4b | ||
|
|
16a958d129 | ||
|
|
76628e8ccc | ||
|
|
e8f3fd2d71 | ||
|
|
fac72eac9d | ||
|
|
f4eac20ff8 | ||
|
|
e3a29180fd | ||
|
|
51f1a08f6e | ||
|
|
5a507f800f | ||
|
|
ab47b06ba9 | ||
|
|
7001f2bcba | ||
|
|
8d7a5275a8 | ||
|
|
30fa6d02c7 | ||
|
|
a18cf3348a | ||
|
|
a84cdaf355 | ||
|
|
23c8fc65a4 | ||
|
|
f8acb832f1 | ||
|
|
b6dbcbde02 | ||
|
|
f5f09302b2 | ||
|
|
512fa7fbd4 | ||
|
|
9458005b5b | ||
|
|
b1be888dd4 | ||
|
|
4f9de809f8 | ||
|
|
1fb04c069c | ||
|
|
fd2431046c | ||
|
|
19ee3f58f8 | ||
|
|
8d0bdb60f0 | ||
|
|
0f23414198 | ||
|
|
40ebddadff | ||
|
|
08556a63b8 | ||
|
|
ea7046f93d | ||
|
|
6768795594 | ||
|
|
e7236212d8 | ||
|
|
3e3abda71e | ||
|
|
f67d3948d2 | ||
|
|
bc3c3db080 | ||
|
|
691be801d8 | ||
|
|
56b9326c09 | ||
|
|
b6ea33dce1 | ||
|
|
367876e8b8 | ||
|
|
eb096142d6 | ||
|
|
9ccd5bdee7 | ||
|
|
dc05029ef5 | ||
|
|
926a3a5688 | ||
|
|
b27556e1eb | ||
|
|
64521f7a39 | ||
|
|
b4ca00bd3b | ||
|
|
bca7b79f77 | ||
|
|
2e0c8901a1 | ||
|
|
3e6ef1a605 | ||
|
|
d9a55ae938 | ||
|
|
7e843ea100 | ||
|
|
b241f74615 | ||
|
|
c5460941c4 | ||
|
|
890425a8b6 | ||
|
|
8c5c4664ea | ||
|
|
901b889f2d | ||
|
|
cf1dd9f9e1 | ||
|
|
8ef3fe199f | ||
|
|
97fe6b1f14 | ||
|
|
4af80debe2 | ||
|
|
513492192b | ||
|
|
e0b4a819b1 | ||
|
|
5c0cf11bfe | ||
|
|
63a884ea75 | ||
|
|
7c7090a582 | ||
|
|
fc70a976bd | ||
|
|
0de90b134c | ||
|
|
6eca74698b | ||
|
|
7c85f0926c | ||
|
|
4ff158266a | ||
|
|
fda8981028 | ||
|
|
7f44a04490 | ||
|
|
818ab46b73 | ||
|
|
5ae5733741 | ||
|
|
2042450f9b | ||
|
|
676b0f88cf | ||
|
|
65d6c5bb32 | ||
|
|
5168698498 | ||
|
|
f512b9510c | ||
|
|
ba71a7f5a2 | ||
|
|
1ebe9d3f47 | ||
|
|
d9bddabbf8 | ||
|
|
3c3aea9c86 | ||
|
|
3806364197 | ||
|
|
e9d3512383 | ||
|
|
09cc5003cd | ||
|
|
1781ca282a | ||
|
|
ba08a5d8f1 | ||
|
|
b1e00b43be | ||
|
|
a2499a8713 | ||
|
|
07665d7571 | ||
|
|
4587b32480 | ||
|
|
15869fd774 | ||
|
|
2e24bdfff8 | ||
|
|
1f8a3d85d1 | ||
|
|
f359324bea | ||
|
|
e0ff1365cf | ||
|
|
b347a7d0bf | ||
|
|
977ac22df9 | ||
|
|
323d41603c | ||
|
|
8dadfecf28 | ||
|
|
5f1d7c6d31 | ||
|
|
7ba6ef9ad8 | ||
|
|
eb1170408f | ||
|
|
c50c9988fc | ||
|
|
d46384f68a | ||
|
|
b7f8239235 | ||
|
|
f31c57b897 | ||
|
|
5d68a57910 | ||
|
|
3886bca93f | ||
|
|
48f79f54bf | ||
|
|
179bb267fb | ||
|
|
1458329e97 | ||
|
|
fdddece984 | ||
|
|
700703fe8c | ||
|
|
3131a340d4 | ||
|
|
a57adc04ff | ||
|
|
4cb227629f | ||
|
|
932cd8f89e | ||
|
|
f2f8d58d3b | ||
|
|
b7bbe1b0a6 | ||
|
|
1dd9a2e6e0 | ||
|
|
aa7b997697 | ||
|
|
eb6c7c98f0 | ||
|
|
3472c67ca8 | ||
|
|
8995e63b72 | ||
|
|
b65f108917 | ||
|
|
2b374a2073 | ||
|
|
b5b164d5d3 | ||
|
|
0cde40604e | ||
|
|
22f2eb7308 | ||
|
|
4a1d2d2b80 | ||
|
|
10922b261b | ||
|
|
de0188de3d | ||
|
|
2b093ad421 | ||
|
|
0ec73b141f | ||
|
|
de0bb14abd | ||
|
|
26809ef1f0 | ||
|
|
dca4f86fa6 | ||
|
|
eb0c30d134 | ||
|
|
c55cce628d | ||
|
|
240238013b | ||
|
|
18f0f0ceee | ||
|
|
c424fe1c7b | ||
|
|
eb694463c5 | ||
|
|
469afb3200 | ||
|
|
8f8acc40f5 | ||
|
|
7dbd8256ea | ||
|
|
66468975e0 | ||
|
|
6d27ce8461 | ||
|
|
b0817f2a83 | ||
|
|
21602a79e7 | ||
|
|
8a42dfe232 | ||
|
|
d02bbb798e | ||
|
|
cbbc817279 | ||
|
|
18d8aba20f | ||
|
|
09834c289a | ||
|
|
880dca1ae5 | ||
|
|
b1e33d4049 | ||
|
|
284c260886 | ||
|
|
05bbb45046 | ||
|
|
d11fe229df | ||
|
|
b7801565c2 | ||
|
|
bd4760e504 | ||
|
|
edc25b216f | ||
|
|
5499867ae8 | ||
|
|
e4c575c130 | ||
|
|
f29f098b26 | ||
|
|
1d751ab2bc | ||
|
|
4f87662664 | ||
|
|
7e2937aa8d | ||
|
|
529781adda | ||
|
|
977d082638 | ||
|
|
c506cf11ac | ||
|
|
967d5159ea | ||
|
|
79f978359c | ||
|
|
4c7bb313be | ||
|
|
83d3555eab | ||
|
|
e93cc569c6 | ||
|
|
5c0cf03548 | ||
|
|
00cae995a7 | ||
|
|
4ba0a9c98c | ||
|
|
6520655d6c | ||
|
|
6bd722b11b | ||
|
|
4576882f07 | ||
|
|
224553f695 | ||
|
|
cc100fd8bb | ||
|
|
a7a0e54cb9 | ||
|
|
ce32eb8d4f | ||
|
|
39519427bb | ||
|
|
2f1fed822c | ||
|
|
bf5824b6e5 | ||
|
|
52bf2ae094 | ||
|
|
fa4a0e92ce | ||
|
|
c15e231d7e | ||
|
|
cc885276f5 | ||
|
|
9dee47cb6d | ||
|
|
39611fa9cb | ||
|
|
bb56de694a | ||
|
|
c4d4d2bcc1 | ||
|
|
4e44f33db9 | ||
|
|
58c085527f | ||
|
|
79fa4b95c3 | ||
|
|
d5f1660c77 | ||
|
|
3a3b5fc002 | ||
|
|
eccc989887 | ||
|
|
c4aa105042 | ||
|
|
ffcb76f73f | ||
|
|
bee39343a6 | ||
|
|
e9326db933 | ||
|
|
dd1cc82fcd | ||
|
|
93825895b9 | ||
|
|
492aebc718 | ||
|
|
e66b2eda60 | ||
|
|
3bb21d8581 | ||
|
|
fb6fa9b7d7 | ||
|
|
0718a62007 | ||
|
|
529d92fa63 | ||
|
|
f7836abc06 | ||
|
|
cd09a932f9 | ||
|
|
46d21f58cf | ||
|
|
3e63be9988 | ||
|
|
aaaf7796b0 | ||
|
|
aba10c1d99 | ||
|
|
c4dd0d2bae | ||
|
|
6c636c3d9c | ||
|
|
9098b198c3 | ||
|
|
927ec2a2c3 | ||
|
|
07a251b544 | ||
|
|
b8e163d8b1 | ||
|
|
cd72acb6c6 | ||
|
|
24942a6f04 | ||
|
|
75dcc746f8 | ||
|
|
263a10848a | ||
|
|
ff4d46d509 | ||
|
|
66ead9128a | ||
|
|
55ff76a85d | ||
|
|
dca29dcbb5 | ||
|
|
84c577cc96 | ||
|
|
5e8fc43857 | ||
|
|
66a17c8d58 | ||
|
|
57f7ee50a6 | ||
|
|
f8ac58e200 | ||
|
|
71954edf75 | ||
|
|
597faa102a | ||
|
|
442fccfc41 | ||
|
|
784ec6104c | ||
|
|
817a01bbc3 | ||
|
|
66c0558174 | ||
|
|
9116be11ae | ||
|
|
969f4c8db6 | ||
|
|
e6916e91e7 | ||
|
|
9544aeaf7a | ||
|
|
babeac1693 | ||
|
|
130b067955 | ||
|
|
df7d6c298a | ||
|
|
a8a60264e9 | ||
|
|
721df8d32b | ||
|
|
2375a6796c | ||
|
|
e04e943e1c | ||
|
|
1bf75671f6 | ||
|
|
7d56de9d15 | ||
|
|
a8de790b57 | ||
|
|
cafddd3b12 | ||
|
|
fc958faf7b | ||
|
|
402894cd8d | ||
|
|
f97cea4b06 | ||
|
|
0198c15b8c | ||
|
|
e813007f49 | ||
|
|
df2962bdb3 | ||
|
|
367f07b784 | ||
|
|
9de9ec2e34 | ||
|
|
6ad7773e2b | ||
|
|
8177dd9a5a | ||
|
|
81994ec3b3 | ||
|
|
ecee4069f1 | ||
|
|
3713d9c4e8 | ||
|
|
c7f1d13f9b | ||
|
|
cc8d18d41f | ||
|
|
afd863ab89 | ||
|
|
46f6653b13 | ||
|
|
3237d1a996 | ||
|
|
386e34e05b | ||
|
|
4fd234e482 | ||
|
|
38fd0dac8b | ||
|
|
11ac111036 | ||
|
|
9803547967 | ||
|
|
1a0c7c4f85 | ||
|
|
7b7d5db796 | ||
|
|
34baf8a354 | ||
|
|
cc9e0fe1ef | ||
|
|
9c354d5775 | ||
|
|
2dce24c1bd | ||
|
|
6f80ce5584 | ||
|
|
c8df2d8e31 | ||
|
|
2e8f27a8ef | ||
|
|
e20dd63f76 | ||
|
|
3e62389325 | ||
|
|
f3c880f96a | ||
|
|
2c7796ea0b | ||
|
|
0daeeb70f7 | ||
|
|
86782865c4 | ||
|
|
ddcabb175a | ||
|
|
7b09e525e8 | ||
|
|
2eefb12e6b | ||
|
|
5777a248d4 | ||
|
|
97a6a4ba85 | ||
|
|
531d33af1c | ||
|
|
0618d690fa | ||
|
|
6aa3b1066f | ||
|
|
393544a194 | ||
|
|
4aea1753bd | ||
|
|
c42d8971ca | ||
|
|
ee7f2ee739 | ||
|
|
6008660a81 | ||
|
|
043d9778b8 | ||
|
|
8bf7c6cccd | ||
|
|
80d7efb365 | ||
|
|
32ed58692c | ||
|
|
63b919f1a9 | ||
|
|
57d9da96a1 | ||
|
|
ec97c67aca | ||
|
|
e5e9b0d928 | ||
|
|
2e37c16b2c | ||
|
|
bcdab80f41 | ||
|
|
c3cf892e40 | ||
|
|
1d41593a84 | ||
|
|
52452020dd | ||
|
|
65f2562d52 | ||
|
|
3482944ac8 | ||
|
|
9d03a1dc13 | ||
|
|
012d3e7b65 | ||
|
|
10d254bbbc | ||
|
|
8acb3f8a90 | ||
|
|
1b00a8692b | ||
|
|
814559bef8 | ||
|
|
8bac02bbcf | ||
|
|
7ef031e244 | ||
|
|
250d32e3dc | ||
|
|
bdeab5bb9c | ||
|
|
764e1e9363 | ||
|
|
72461546b8 | ||
|
|
98ad3b0f4a | ||
|
|
7afd2adacf | ||
|
|
4c52d0ec42 | ||
|
|
9f66622472 | ||
|
|
1f2f33d6c0 | ||
|
|
1a3c454d7f | ||
|
|
fa11d313fb | ||
|
|
20bc2a97d9 | ||
|
|
0cd49c4c81 | ||
|
|
6c1cd2537d | ||
|
|
cf31f24752 | ||
|
|
27523a1c45 | ||
|
|
e1d0fe6b92 | ||
|
|
d3f4a4991e | ||
|
|
296ddbdec5 | ||
|
|
f7cd34b8d8 | ||
|
|
7bafffbd06 | ||
|
|
201ec3be5a | ||
|
|
7d1d5af097 | ||
|
|
f9ce5bce4d | ||
|
|
748768c771 | ||
|
|
f307077636 | ||
|
|
179cd878a9 | ||
|
|
788548d1f4 | ||
|
|
0ae15c2b3c | ||
|
|
b5b4257032 | ||
|
|
657db124b2 | ||
|
|
f5ea43b3d3 | ||
|
|
01747510d5 | ||
|
|
ff8b160a2b | ||
|
|
28b7afda15 | ||
|
|
ecd253dd3e | ||
|
|
8d0dbcd50e | ||
|
|
327f21f1bb | ||
|
|
c96d6b2958 | ||
|
|
da8fb37317 | ||
|
|
4d7e29cb3a | ||
|
|
17099320e9 | ||
|
|
f3dbb4dd2d | ||
|
|
b3b3cdde08 | ||
|
|
b8cd510a0e | ||
|
|
0d5eb2ea9e | ||
|
|
2b0fd2e5c0 | ||
|
|
4168821ec4 | ||
|
|
6353488db7 | ||
|
|
b446d4cc3f | ||
|
|
16b2762025 | ||
|
|
c5a3e2e376 | ||
|
|
5018298c81 | ||
|
|
37b81aa0be | ||
|
|
6a3a0465a4 | ||
|
|
34d67d6018 | ||
|
|
9c4403d7ff | ||
|
|
3c0566cb87 | ||
|
|
4357066cdf | ||
|
|
67ca9a7fc4 | ||
|
|
9c9c295a79 | ||
|
|
daa3292000 | ||
|
|
2da5e2b2ec | ||
|
|
c5119ad27b | ||
|
|
4808507da8 | ||
|
|
11a286fe26 | ||
|
|
ca80b4730f | ||
|
|
80a8ce8a46 | ||
|
|
d804323cab | ||
|
|
cbaef446ac | ||
|
|
8aa1312ae2 | ||
|
|
7ec09fcfe9 | ||
|
|
c090095e08 | ||
|
|
f24bc00eb9 | ||
|
|
f91ee5d245 | ||
|
|
dd6700e659 | ||
|
|
ca8a27babe | ||
|
|
19cc894662 | ||
|
|
15320f0eb2 | ||
|
|
af758af51a | ||
|
|
9d231801da | ||
|
|
33c2154a98 | ||
|
|
f890b316da | ||
|
|
2e4cf0b731 | ||
|
|
f5a319b0b3 | ||
|
|
2533d2c694 | ||
|
|
b1fed81821 | ||
|
|
0064c0357f | ||
|
|
20cd8cce1d | ||
|
|
bc8af2784f | ||
|
|
e300810a16 | ||
|
|
33b48a8a4b | ||
|
|
6f2f1174e6 | ||
|
|
adbe75ae7e | ||
|
|
dae2add713 | ||
|
|
38946fd294 | ||
|
|
047ef107ae | ||
|
|
1bb2f92f5b | ||
|
|
727a1f29d1 | ||
|
|
012bd3a307 | ||
|
|
ae5b19b0aa | ||
|
|
81d9c55eee | ||
|
|
90cfe0e151 | ||
|
|
491800280c | ||
|
|
d60c2e0815 | ||
|
|
fb0babe261 | ||
|
|
e6bc8abdc1 | ||
|
|
fbee644b4e | ||
|
|
aaf327b308 | ||
|
|
d404e0f50e | ||
|
|
c5bb83c6d0 | ||
|
|
8bf3b64831 | ||
|
|
9ff04f8637 | ||
|
|
dd7953ab4c | ||
|
|
23fde3387a | ||
|
|
ecbdb2b18d | ||
|
|
373921777a | ||
|
|
2f489b04ae | ||
|
|
a2c393ccc5 | ||
|
|
73a11c91d2 | ||
|
|
8673f919fd | ||
|
|
1e32161652 | ||
|
|
38eb769c1b | ||
|
|
5e372ed9f4 | ||
|
|
e027a81317 | ||
|
|
0a51713bd7 | ||
|
|
d5cde03db1 | ||
|
|
449f2bfa09 | ||
|
|
c9815e2ccb | ||
|
|
9bd6bc64b0 | ||
|
|
a5fe016854 | ||
|
|
93cd299c77 | ||
|
|
e8f8d8b4d4 | ||
|
|
b806ea6871 | ||
|
|
cb17180dea | ||
|
|
78ec4ba2a7 | ||
|
|
317104de30 | ||
|
|
63412975c3 | ||
|
|
9c87f8749d | ||
|
|
5fc36516f4 | ||
|
|
c608c8a57e | ||
|
|
853a9884d7 | ||
|
|
ecafaf4ea1 | ||
|
|
eb490e92c3 | ||
|
|
98c7e43927 | ||
|
|
d8786d4785 | ||
|
|
02181021ce | ||
|
|
fa60f8c16e | ||
|
|
3084a2f409 | ||
|
|
f473cfc6f2 | ||
|
|
8a34aa5c45 | ||
|
|
cc204c297f | ||
|
|
bb210ff59e | ||
|
|
671e84bec9 | ||
|
|
fc2ba2df32 | ||
|
|
e5bee8e79b | ||
|
|
1b13ddcf32 | ||
|
|
de707049d4 | ||
|
|
e95ae2dbbb | ||
|
|
4606c27cdc | ||
|
|
ba88bf72ce | ||
|
|
75967cec02 | ||
|
|
0a35f661bd | ||
|
|
f141806fb4 | ||
|
|
d80f40075c | ||
|
|
44dbe80096 | ||
|
|
c7546ef08a | ||
|
|
6fe5bb4aa8 | ||
|
|
589a9aa3db | ||
|
|
2c8d1a9255 | ||
|
|
a8c11c0cdb | ||
|
|
34ae93f379 | ||
|
|
bd57d291c1 | ||
|
|
7310daf51d | ||
|
|
78d9d888db | ||
|
|
bccdc7f5e8 | ||
|
|
3854526389 | ||
|
|
74072847ca | ||
|
|
c5857bfc0b | ||
|
|
8b380894f9 | ||
|
|
b090737162 | ||
|
|
476abc9dad | ||
|
|
a2cbf07b6d | ||
|
|
2a67344b93 | ||
|
|
9ecb617d2e | ||
|
|
9381776345 | ||
|
|
5a47bb11ba | ||
|
|
4be4fc4808 | ||
|
|
d939be28e6 | ||
|
|
bb8c7756c7 | ||
|
|
3261fbd7e9 | ||
|
|
7164d2b885 | ||
|
|
185fccf712 | ||
|
|
0c860ade12 | ||
|
|
cfb2739cd9 | ||
|
|
b1bb3f38f3 | ||
|
|
0f0017b02d | ||
|
|
a99f7a494b | ||
|
|
65b3997e72 | ||
|
|
5e8f947ce5 | ||
|
|
3e9308d315 | ||
|
|
5f48a4e5e5 | ||
|
|
e593ca4bda | ||
|
|
b731eaaffb | ||
|
|
75f5a430e4 | ||
|
|
e0c721585e | ||
|
|
da21c2e0a7 | ||
|
|
2b989e4c39 | ||
|
|
7d6c80b941 | ||
|
|
a3039eea12 | ||
|
|
cbf9577a24 | ||
|
|
70ea32e89d | ||
|
|
10a3037ab3 | ||
|
|
9ccfca5061 | ||
|
|
52cbf1fb64 | ||
|
|
190e401452 | ||
|
|
b881a27c8d | ||
|
|
6fab527eed | ||
|
|
9690832247 | ||
|
|
60a68963a8 | ||
|
|
e5948081a7 | ||
|
|
7aa47e2a60 | ||
|
|
327538a98f | ||
|
|
f6c71e27d8 | ||
|
|
4628da7ea2 | ||
|
|
02ba96c421 | ||
|
|
87f6fe6b20 | ||
|
|
8049bd5b80 | ||
|
|
5225ba06c8 | ||
|
|
d695fc3fbc | ||
|
|
a2132292ac | ||
|
|
c31b191b96 | ||
|
|
c4b573f608 | ||
|
|
28810fcba3 | ||
|
|
8d1989a595 | ||
|
|
d022956e24 | ||
|
|
2bdaa4dc4e | ||
|
|
46bfbaada1 | ||
|
|
e659343821 | ||
|
|
44138564b0 | ||
|
|
3c77abbbab | ||
|
|
209c6e6dab | ||
|
|
6fa827e9a1 | ||
|
|
cd3ea7fd2e | ||
|
|
d3bd697cb2 | ||
|
|
6c6bf030c5 | ||
|
|
6e2b3ae0c7 | ||
|
|
9915929340 | ||
|
|
298bf5fb0a | ||
|
|
6ae431b2f0 | ||
|
|
44769b6001 | ||
|
|
ebabfeb669 | ||
|
|
5c1f176848 | ||
|
|
4186cfd91c | ||
|
|
457e9b53c7 | ||
|
|
861aec6bd6 | ||
|
|
21572d3547 | ||
|
|
89afba7437 | ||
|
|
53f5fbb77f | ||
|
|
9299f00d20 | ||
|
|
e5e97a3560 | ||
|
|
32bc0382d6 | ||
|
|
fa53abdfb7 | ||
|
|
0cbfb81b4c | ||
|
|
d47c801b18 | ||
|
|
c056b9d2dd | ||
|
|
92a15ea85d | ||
|
|
6fe022ccc8 | ||
|
|
f397dd71a9 | ||
|
|
b71eb666a7 | ||
|
|
02e0a47a52 | ||
|
|
b176be942d | ||
|
|
a2ab0d75ed | ||
|
|
60809fe5ad | ||
|
|
51c5902db0 | ||
|
|
c48f6c31ce | ||
|
|
b2d23edf6d | ||
|
|
31f25cfd1b | ||
|
|
7d4e4c167e | ||
|
|
4a8e416fe1 | ||
|
|
090e624ebc | ||
|
|
eb12030975 | ||
|
|
e46af9d54c | ||
|
|
861faaa285 | ||
|
|
8312233a93 | ||
|
|
959bf73485 | ||
|
|
ce4efd0b70 | ||
|
|
c8dc751b82 | ||
|
|
beeaf1a996 | ||
|
|
f856276d71 | ||
|
|
0300854c46 | ||
|
|
96aa1054dc | ||
|
|
7c862df92a | ||
|
|
e7937206af | ||
|
|
e49c1c2f01 | ||
|
|
081b2c11e4 | ||
|
|
f342f4aa98 | ||
|
|
57390b02ca | ||
|
|
f06e9f5ede | ||
|
|
4e73e69342 | ||
|
|
a698248dff | ||
|
|
c6ff80b71c | ||
|
|
37cad3f255 | ||
|
|
5700f36a6f | ||
|
|
34f800d815 | ||
|
|
b8ef6eba3f | ||
|
|
8d3ca813ed | ||
|
|
ffec50141a | ||
|
|
54027049d3 | ||
|
|
4c2829e3d2 | ||
|
|
69e308d420 | ||
|
|
ad46f10b55 | ||
|
|
cd0fdfc95b | ||
|
|
d95abfce82 | ||
|
|
942a125e04 | ||
|
|
cc5fe0859a | ||
|
|
e97a00e61d | ||
|
|
a3677d5aa8 | ||
|
|
f927933c46 | ||
|
|
8f15aac6fc | ||
|
|
b519c43e16 | ||
|
|
5ab83bcb21 | ||
|
|
84ce3b4b47 | ||
|
|
02c8393bc6 | ||
|
|
b07c43a32f | ||
|
|
9469291731 | ||
|
|
ce1b337f7f | ||
|
|
c29baf446d | ||
|
|
fdf5fb46bc | ||
|
|
8c6ca5e999 | ||
|
|
bb2b9eeea9 | ||
|
|
d1cbce3f89 | ||
|
|
55b5f6821f | ||
|
|
ee8e1b9322 | ||
|
|
f9b8db0715 | ||
|
|
2fb01b4adf | ||
|
|
02bce8c3a8 | ||
|
|
468671a3fa | ||
|
|
20bd5c4c36 | ||
|
|
ffb50cfe28 | ||
|
|
8ee650f38d | ||
|
|
3de2bf88df | ||
|
|
1fcbd8410f | ||
|
|
de082d0fb2 | ||
|
|
51e6d5dfbd | ||
|
|
3cc5cdbc06 | ||
|
|
842c69fd80 | ||
|
|
d40bbdc3a5 | ||
|
|
c458823014 | ||
|
|
61c291ae4e | ||
|
|
b69ec47b18 | ||
|
|
32abf1614f | ||
|
|
f613228619 | ||
|
|
51fc8e824d | ||
|
|
a916cc8320 | ||
|
|
ca9f883352 | ||
|
|
9d68fa3b88 | ||
|
|
d3a5885d95 | ||
|
|
c1db13c1f6 | ||
|
|
31b0f711b8 | ||
|
|
59ca1ce3a6 | ||
|
|
0f7bd5f4fd | ||
|
|
aff9031284 | ||
|
|
01130757d6 | ||
|
|
397d080da2 | ||
|
|
f97b3bf82e | ||
|
|
cb5d052829 | ||
|
|
b7bcd252d3 | ||
|
|
0908d21bed | ||
|
|
aa43926da2 | ||
|
|
a368f4cf57 | ||
|
|
08a4bde6c1 | ||
|
|
f68e979229 | ||
|
|
544b1f243d | ||
|
|
391e807c78 | ||
|
|
4099cde737 | ||
|
|
4d878985d4 | ||
|
|
e56a74dc81 | ||
|
|
34c45ec883 | ||
|
|
72d7d4a65e | ||
|
|
cb0add3b90 | ||
|
|
71a48ce10f | ||
|
|
31b8535854 | ||
|
|
ed1bb73c22 | ||
|
|
b7ac28e902 | ||
|
|
3cb72797b6 | ||
|
|
6f1f8d7806 | ||
|
|
b06f1115d4 | ||
|
|
777ad31de0 | ||
|
|
8b977f8786 | ||
|
|
7c3139226c | ||
|
|
0ddabf3089 | ||
|
|
6cfc7e45ef | ||
|
|
9ea675bc89 | ||
|
|
42f90c8806 | ||
|
|
c8b6eac8fe | ||
|
|
d78272c1fa | ||
|
|
48ccdf128f | ||
|
|
2322dffd49 | ||
|
|
8a5e5bf01e | ||
|
|
99ed83022e | ||
|
|
07185534fb | ||
|
|
9bacaa11d8 | ||
|
|
4fe55b5a28 | ||
|
|
bd503f224d | ||
|
|
b5c91647ca | ||
|
|
c359a0f2ac | ||
|
|
c7c4c7497a | ||
|
|
e442baab31 | ||
|
|
8101c8b51c | ||
|
|
49d9f4a89d | ||
|
|
aebe35c9d4 | ||
|
|
a26361c79f | ||
|
|
eba1ef6ab9 | ||
|
|
a486458a08 | ||
|
|
82b8401414 | ||
|
|
8b6ee91ec1 | ||
|
|
06cffd9e15 | ||
|
|
beaccbcf3b | ||
|
|
21ee5e2401 | ||
|
|
6462e1580c | ||
|
|
8b5552bb62 | ||
|
|
747c188824 | ||
|
|
692087dd25 | ||
|
|
6fe13e8654 | ||
|
|
3b2b98b9fe | ||
|
|
796f2fe14a | ||
|
|
4fef391b64 | ||
|
|
83f6cebd0b | ||
|
|
90183ae823 | ||
|
|
3c9df03584 | ||
|
|
367c6cfd92 | ||
|
|
5e75410e7c | ||
|
|
38028f7d0c | ||
|
|
3ca514f2b2 | ||
|
|
a07ae685e2 | ||
|
|
c07f899870 | ||
|
|
092b530537 | ||
|
|
cf691499a1 | ||
|
|
0bb9cccdc6 | ||
|
|
4cb12f6cae | ||
|
|
ecbdeb2096 | ||
|
|
9a7a532f7b | ||
|
|
825833c859 | ||
|
|
c4c3613874 | ||
|
|
e527fd9551 | ||
|
|
3a03156cb3 | ||
|
|
b3780186f8 | ||
|
|
c4654e44d8 | ||
|
|
9c6047e3fc | ||
|
|
260cc7d180 | ||
|
|
bbe930e552 | ||
|
|
a655fe860e | ||
|
|
ddf36aa879 | ||
|
|
34c31c561d | ||
|
|
3cc7d00d71 | ||
|
|
ed214b1382 | ||
|
|
f8405e298c | ||
|
|
539159ba50 | ||
|
|
f2c9d2f905 | ||
|
|
1b11331881 | ||
|
|
b71afff29f | ||
|
|
b4c6950f95 | ||
|
|
047a477f7b | ||
|
|
ec0329efb1 | ||
|
|
477caa12c3 | ||
|
|
8f82ff9b1d | ||
|
|
7d97fdcbec | ||
|
|
5ee0150154 | ||
|
|
1bcacfc474 | ||
|
|
34603184a4 | ||
|
|
78cb05adda | ||
|
|
8493252645 | ||
|
|
2ee5a25c91 | ||
|
|
60ef1b8867 | ||
|
|
3eaf756aa2 | ||
|
|
bc318fa185 | ||
|
|
f93c42a23f | ||
|
|
f5dde77efe | ||
|
|
2b7f923865 | ||
|
|
80099ad63d | ||
|
|
b273bf2947 | ||
|
|
2241ba8819 | ||
|
|
3cf58e3caf | ||
|
|
450442a916 | ||
|
|
8c866bd17d | ||
|
|
8deaf1850b | ||
|
|
6da2aca975 | ||
|
|
11989d17e3 | ||
|
|
aa42633ab2 | ||
|
|
5aa6e5c2a9 | ||
|
|
825398f4d4 | ||
|
|
ccac249c01 | ||
|
|
f2806d9335 | ||
|
|
b11806e341 | ||
|
|
9ec336283f | ||
|
|
71a7afab17 | ||
|
|
bbdb2c9b36 | ||
|
|
ede58d9159 | ||
|
|
48e09f42fc | ||
|
|
ec7d182d38 | ||
|
|
b271b529ea | ||
|
|
d24690ab8c | ||
|
|
89fa3ff8fe | ||
|
|
5c0a3a64ab | ||
|
|
b66629b951 | ||
|
|
de866a322f | ||
|
|
9c7c95cf4f | ||
|
|
e32ffd1819 | ||
|
|
79ac19937f | ||
|
|
08e8fcdc7c | ||
|
|
6941e63a2c | ||
|
|
c68997936a | ||
|
|
40547439b2 | ||
|
|
095c6ad099 | ||
|
|
691fe638e4 | ||
|
|
fbdee6a7a7 | ||
|
|
664f3d7eaa | ||
|
|
c2846fc586 | ||
|
|
e9b1332119 | ||
|
|
757a5146a1 | ||
|
|
f9defda106 | ||
|
|
e6a3ca0a1f | ||
|
|
14342c9632 | ||
|
|
1cf478f5b3 | ||
|
|
9ff94f9bd5 | ||
|
|
9842a52820 | ||
|
|
dbca9c30b0 | ||
|
|
220f2fbd79 | ||
|
|
8dbbdd8cd2 | ||
|
|
1c2a0c506c | ||
|
|
90a6707280 | ||
|
|
e7cc54092a | ||
|
|
cd70cbcbea | ||
|
|
f6df4d6694 | ||
|
|
7910005086 | ||
|
|
b8ace17b7c | ||
|
|
0406e89c2a | ||
|
|
f70814d6b6 | ||
|
|
8440e57118 | ||
|
|
29eda3530c | ||
|
|
558544f1e4 | ||
|
|
56c2f0b466 | ||
|
|
4bbc7d142f | ||
|
|
26cc3943ce | ||
|
|
5ef21e1ddf | ||
|
|
6521f45f0b | ||
|
|
414d5bd8ac | ||
|
|
d62c2ffb42 | ||
|
|
15ccf03b28 | ||
|
|
d131941b62 | ||
|
|
98f0b36cfc | ||
|
|
6465bca640 | ||
|
|
828a48998f | ||
|
|
4ad447ba6c | ||
|
|
736979c20b | ||
|
|
0c34a61332 | ||
|
|
67d58678a3 | ||
|
|
fb92a74084 | ||
|
|
8b5430ca44 | ||
|
|
f24827f558 | ||
|
|
f49b967d5a | ||
|
|
111ca85c4f | ||
|
|
4b590e03ff | ||
|
|
c73bedc63c | ||
|
|
6f67f76eef | ||
|
|
002ed4bc77 | ||
|
|
0db8780ad9 | ||
|
|
9d48e79c64 | ||
|
|
5b744176df | ||
|
|
ba7db26157 | ||
|
|
fc6129261b | ||
|
|
7702d98766 | ||
|
|
04ed016175 | ||
|
|
1aaaf95950 | ||
|
|
1e334ca7d5 | ||
|
|
20b15e0330 | ||
|
|
74df4b6a9c | ||
|
|
f63463e654 | ||
|
|
818539e3de | ||
|
|
f48741f65c | ||
|
|
e9e5af849f | ||
|
|
22d68f5c7c | ||
|
|
690598da60 | ||
|
|
a24b633ccb | ||
|
|
5b8cd8cdcc | ||
|
|
c35c85e9b5 | ||
|
|
2ffc1641a0 | ||
|
|
9d67dceff3 | ||
|
|
c449a31b37 | ||
|
|
efd3427fc0 | ||
|
|
88ed017ca7 | ||
|
|
30ba3a4b78 | ||
|
|
c8380daee5 | ||
|
|
8afb1651fd | ||
|
|
9560903c80 | ||
|
|
e94f6608d2 | ||
|
|
949faf1620 | ||
|
|
5b3259b1ef | ||
|
|
485d7b0612 | ||
|
|
94b037428e | ||
|
|
b401873298 | ||
|
|
1c9bbee3b3 | ||
|
|
5fa33c7813 | ||
|
|
581d5fde1d | ||
|
|
382336d39d | ||
|
|
5bd3a818a3 | ||
|
|
97874f3481 | ||
|
|
135bafefeb | ||
|
|
15b8c5a7e7 | ||
|
|
15990071d4 | ||
|
|
d00f9d3609 | ||
|
|
5ad745de75 | ||
|
|
b67580af2c | ||
|
|
2900062df5 | ||
|
|
67fe8931dd | ||
|
|
e6f593e8c4 | ||
|
|
8924740cfe | ||
|
|
34d4ae0b59 | ||
|
|
62a4541df5 | ||
|
|
401958c0d6 | ||
|
|
8859d223bf | ||
|
|
621962ad9c | ||
|
|
5c238af3df | ||
|
|
8e148095f0 | ||
|
|
3c55a05b1c | ||
|
|
d293a65f5e | ||
|
|
e6bfa01db5 | ||
|
|
4e122a67d3 | ||
|
|
b11863d3b2 | ||
|
|
93197ffb77 | ||
|
|
f02baa8761 | ||
|
|
19e39b84ec | ||
|
|
53800e460f | ||
|
|
e061cc7163 | ||
|
|
e61942f33e | ||
|
|
f8b97bf909 | ||
|
|
ed272da302 | ||
|
|
e8b7975295 | ||
|
|
cae1a20973 | ||
|
|
165150a852 | ||
|
|
ad2674bf8e | ||
|
|
b72266f7bf | ||
|
|
79c864ae19 | ||
|
|
451eec4db5 | ||
|
|
539f7ada70 | ||
|
|
c60156d245 | ||
|
|
281bd3660f | ||
|
|
5ffc37ac80 | ||
|
|
807f4cb32b | ||
|
|
f23925f87f | ||
|
|
511912acc1 | ||
|
|
1531e38ab6 | ||
|
|
4f3789ef96 | ||
|
|
e751369d38 | ||
|
|
3ddbbf41d8 | ||
|
|
47c3cd096a | ||
|
|
df9909a8e4 | ||
|
|
73843ec783 | ||
|
|
ede30188b0 | ||
|
|
b679edbd62 | ||
|
|
fe846d8f28 | ||
|
|
0abb9edad8 | ||
|
|
9ff1b18935 | ||
|
|
67b41bb356 | ||
|
|
77b34f4c2c | ||
|
|
a698c4127c | ||
|
|
35e2448f8e | ||
|
|
da1a3a47cd | ||
|
|
98cec98dd9 | ||
|
|
342907dcba | ||
|
|
0e209eacee | ||
|
|
098888cfc6 | ||
|
|
1148aa3fe3 | ||
|
|
0ca336505d | ||
|
|
be17faf065 | ||
|
|
a73c63f482 | ||
|
|
45d3ef288f | ||
|
|
8b253fe50e | ||
|
|
1f58f59335 | ||
|
|
b48a13ed1d | ||
|
|
5a8f2a7395 | ||
|
|
34b96e0b63 | ||
|
|
6a12c33c33 | ||
|
|
b29e76b128 | ||
|
|
40a26b8caf | ||
|
|
28467d44b6 | ||
|
|
da34a546b5 | ||
|
|
4d45618125 | ||
|
|
4d1a05ccb0 | ||
|
|
03cac08999 | ||
|
|
a316bd8f95 | ||
|
|
73046d7499 | ||
|
|
67cf80d70f | ||
|
|
b51b19b3c0 | ||
|
|
1cc902062a | ||
|
|
36f5857de3 | ||
|
|
aef8f54903 | ||
|
|
fe3df584ef | ||
|
|
a73d99c552 | ||
|
|
72328ca8bc | ||
|
|
f3d5e75c22 | ||
|
|
fff075cc68 | ||
|
|
cca23aa683 | ||
|
|
ae72f9ac70 | ||
|
|
2b2ec51206 | ||
|
|
6135feec56 | ||
|
|
b38c00881b | ||
|
|
301e33f224 | ||
|
|
22417858a3 | ||
|
|
5d55ce2b25 | ||
|
|
a994e67ebf | ||
|
|
57a840b069 | ||
|
|
a273ef1763 | ||
|
|
a63f474109 | ||
|
|
d368978949 | ||
|
|
90d721763d | ||
|
|
6fc9ba4996 | ||
|
|
10e08e172a | ||
|
|
46270f6bd5 | ||
|
|
1c9274ad96 | ||
|
|
542798f7a6 | ||
|
|
bcf95e5799 | ||
|
|
02332ee8cd | ||
|
|
da4911c668 | ||
|
|
829eeebb7e | ||
|
|
20885c6cf7 | ||
|
|
f6465b5dac | ||
|
|
bd084cc261 | ||
|
|
895b7d74f5 | ||
|
|
ddbd88c601 | ||
|
|
7e34cf5ac9 | ||
|
|
8c26947fbc | ||
|
|
091e79c550 | ||
|
|
a31e2a8506 | ||
|
|
52d4cae74d | ||
|
|
cc83007cea | ||
|
|
0d9c2d13f9 | ||
|
|
ccec190cb2 | ||
|
|
c3ac69a030 | ||
|
|
fd4e9d93e0 | ||
|
|
2e353c084a | ||
|
|
9b1272edac | ||
|
|
479be8016a | ||
|
|
3f3a2d8433 | ||
|
|
7be2020879 | ||
|
|
73974d1c40 | ||
|
|
a4a22f3bfc | ||
|
|
491abfc833 | ||
|
|
7dc699ffbb | ||
|
|
3fee3f0f41 | ||
|
|
cf8b6e5d05 | ||
|
|
3bac706b8a | ||
|
|
6e3761ae91 | ||
|
|
b88ae49c3b | ||
|
|
79756d13fd | ||
|
|
44d2081b7b | ||
|
|
e8be7685e9 | ||
|
|
2d6316e6c3 | ||
|
|
009309966b | ||
|
|
d3e64ed56f | ||
|
|
715d9be403 | ||
|
|
ebe0a30c14 | ||
|
|
c8eb0f5874 | ||
|
|
90907f7b1e | ||
|
|
d898796672 | ||
|
|
ed32de76ca | ||
|
|
07fc31b401 | ||
|
|
a0db92cb5e | ||
|
|
f33a94a6e2 | ||
|
|
bab31f1198 | ||
|
|
a5614ec03b | ||
|
|
70f49be4fc | ||
|
|
173f612d74 | ||
|
|
ba4578f451 | ||
|
|
1c5e4b17bf | ||
|
|
f65548894f | ||
|
|
b910a7dbe5 | ||
|
|
1c24dc1def | ||
|
|
d9c2f26506 | ||
|
|
7005f00df0 | ||
|
|
6ec6655280 | ||
|
|
848cd8b994 | ||
|
|
8a26e73dab | ||
|
|
f66e1ff103 | ||
|
|
5215dd569a | ||
|
|
ab5fe2d076 | ||
|
|
92f577e788 | ||
|
|
4c0d53ee92 | ||
|
|
c8cc882a57 | ||
|
|
a95bfdb192 | ||
|
|
2a1fba1b45 | ||
|
|
a44d114176 | ||
|
|
cce473c676 | ||
|
|
5fb09f57e3 | ||
|
|
eeacdc1e20 | ||
|
|
d0577a43fd | ||
|
|
e8b25d20a3 | ||
|
|
4192bea3ab | ||
|
|
4ff14fbf61 | ||
|
|
f0102119b6 | ||
|
|
848e9e40e4 | ||
|
|
a12a258058 | ||
|
|
bfa198de4e | ||
|
|
04b4a3e8ca | ||
|
|
f7d62474e8 | ||
|
|
5bf4a3fd1d | ||
|
|
35ec677446 | ||
|
|
f4631703ca | ||
|
|
767fa4962b | ||
|
|
08ba471710 | ||
|
|
d93f6bad16 | ||
|
|
488e478374 | ||
|
|
e2bf56938b | ||
|
|
5267927c3f | ||
|
|
1f04ca946c | ||
|
|
959bdeef54 | ||
|
|
2627317e03 | ||
|
|
c288557188 | ||
|
|
7f82d3098c | ||
|
|
0a7a666904 | ||
|
|
7bbe2fd28d | ||
|
|
8857abdc05 | ||
|
|
423b45cb7b | ||
|
|
6ef6bc68c2 | ||
|
|
b8e996d3c4 | ||
|
|
345696227d | ||
|
|
66330af708 | ||
|
|
3444d88e4d | ||
|
|
95416a799e | ||
|
|
dc3c93becf | ||
|
|
ce4b4ad208 | ||
|
|
7afa00b72c | ||
|
|
230b575983 | ||
|
|
2f3e93c619 | ||
|
|
59753d8310 | ||
|
|
4fb881a583 | ||
|
|
e42e9ac489 | ||
|
|
f5f20f3563 | ||
|
|
931c27a5ec | ||
|
|
bc100163c2 | ||
|
|
3a64e32184 | ||
|
|
b9787182e6 | ||
|
|
7797bf23fb | ||
|
|
f347f30353 | ||
|
|
eb239bfdb7 | ||
|
|
7047e565fc | ||
|
|
f178c6c0a1 | ||
|
|
ee5a95baa8 | ||
|
|
0c1c6d198c | ||
|
|
a0e605814f | ||
|
|
518986d28e | ||
|
|
2357914b4c | ||
|
|
e5a4428515 | ||
|
|
6b9033318b | ||
|
|
9ee907783d | ||
|
|
463cc62b75 | ||
|
|
5afd98edd8 | ||
|
|
8b9051d72e | ||
|
|
d6392f3aa9 | ||
|
|
fe808be91b | ||
|
|
2cab10e906 | ||
|
|
7f39d1f22e | ||
|
|
a9184368c1 | ||
|
|
caf2fc2ab6 | ||
|
|
5dd8141e5e | ||
|
|
2ff28675d4 | ||
|
|
519bd986b5 | ||
|
|
e41efba176 | ||
|
|
0502813496 | ||
|
|
932a6828f9 | ||
|
|
d176ef3f6a | ||
|
|
deb98268f6 | ||
|
|
e1531c3237 | ||
|
|
47af45a430 | ||
|
|
0195b42eea | ||
|
|
f875af5cdb | ||
|
|
32a918b902 | ||
|
|
d09a56075f | ||
|
|
e261fae348 | ||
|
|
5b8668d73f | ||
|
|
123292b56b | ||
|
|
0e0828f47f | ||
|
|
532c9fa69a | ||
|
|
e509563b10 | ||
|
|
899f31917c | ||
|
|
e6ca9a1c6d | ||
|
|
24c68b9c2c | ||
|
|
2891e1ac3e | ||
|
|
da9618c08b | ||
|
|
cb6643a345 | ||
|
|
71527b87c1 | ||
|
|
df25a22634 | ||
|
|
5c6a2cf44f | ||
|
|
536a7f6095 | ||
|
|
df9e725baf | ||
|
|
156716a7d8 | ||
|
|
0876ef7704 | ||
|
|
5c3ea25ff3 | ||
|
|
bd8e0cf5d2 | ||
|
|
1d5c4e3b0b | ||
|
|
6a565692a0 | ||
|
|
cf68446a00 | ||
|
|
c4a92f6706 | ||
|
|
7bb397a031 | ||
|
|
d86f034e96 | ||
|
|
20385507d8 | ||
|
|
91def1176d | ||
|
|
2e03ee4197 | ||
|
|
e8dd60a831 | ||
|
|
dc15094b8a | ||
|
|
fc807429e4 | ||
|
|
5ec21fc0ba | ||
|
|
3a0a8a9ced | ||
|
|
b9b05dbdfc | ||
|
|
179e72cda0 | ||
|
|
2b9514ab0b | ||
|
|
8a04a9f72e | ||
|
|
3a7af8e8d6 | ||
|
|
615d12bce3 | ||
|
|
72d055ac19 | ||
|
|
80c18004c1 | ||
|
|
97e9b2901c | ||
|
|
027d94cc77 | ||
|
|
66261af03d | ||
|
|
290e2c734a | ||
|
|
54d19715c7 | ||
|
|
bbe1533f91 | ||
|
|
97040f61ed | ||
|
|
55801ac11c | ||
|
|
07c32d8ee4 | ||
|
|
2e631bcbd9 | ||
|
|
c96c630fe5 | ||
|
|
f69e75cfc1 | ||
|
|
6157a693f1 | ||
|
|
854a158d3d | ||
|
|
18919ef33c | ||
|
|
32b0737e70 | ||
|
|
79eb164e90 | ||
|
|
e3296c3cc0 | ||
|
|
f5dbbcc2c6 | ||
|
|
134eaedf23 | ||
|
|
4a89f3c579 | ||
|
|
17420ed590 | ||
|
|
2125fa0855 | ||
|
|
5c14c30a78 | ||
|
|
788d06c086 | ||
|
|
1a88c96beb | ||
|
|
b8d69278e4 | ||
|
|
4a7ecffcbb | ||
|
|
9fe0021a7a | ||
|
|
262816bd2d | ||
|
|
e44d27c00a | ||
|
|
5062bc91ab | ||
|
|
dde4132d2c | ||
|
|
9bb3628792 | ||
|
|
03a5bb1ab0 | ||
|
|
2d8b3d7275 | ||
|
|
f48eedee78 | ||
|
|
08d459c373 |
6
.dockerignore
Normal file
6
.dockerignore
Normal file
@@ -0,0 +1,6 @@
|
||||
data
|
||||
testdata
|
||||
examples
|
||||
k8s-examples
|
||||
.idea
|
||||
.git
|
||||
4
.editorconfig
Normal file
4
.editorconfig
Normal file
@@ -0,0 +1,4 @@
|
||||
[start-*]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
end_of_line = lf
|
||||
19
.gitattributes
vendored
19
.gitattributes
vendored
@@ -1,17 +1,2 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
|
||||
# Custom for Visual Studio
|
||||
*.cs diff=csharp
|
||||
|
||||
# Standard to msysgit
|
||||
*.doc diff=astextplain
|
||||
*.DOC diff=astextplain
|
||||
*.docx diff=astextplain
|
||||
*.DOCX diff=astextplain
|
||||
*.dot diff=astextplain
|
||||
*.DOT diff=astextplain
|
||||
*.pdf diff=astextplain
|
||||
*.PDF diff=astextplain
|
||||
*.rtf diff=astextplain
|
||||
*.RTF diff=astextplain
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=lf
|
||||
|
||||
4
.github/FUNDING.yml
vendored
Normal file
4
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
github: itzg
|
||||
custom:
|
||||
- https://www.buymeacoffee.com/itzg
|
||||
- https://paypal.me/itzg
|
||||
40
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
40
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
name: Bug Report
|
||||
description: File a bug report
|
||||
labels:
|
||||
- bug
|
||||
- status/needs triage
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to report a bug.
|
||||
|
||||
Please double check some things first:
|
||||
- Do you just have a question about something? If so, asking in the [Q&A Discussions](https://github.com/itzg/docker-minecraft-server/discussions/categories/q-a) or asking on [the Discord server](https://discord.gg/DXfKpjB) would be best.
|
||||
- Is this bug happening after the `[init]` prefixed logs and after the log that says "Starting the Minecraft server"? If so, please report the bug with Mojang or the respective server provider.
|
||||
- Are you seeing a performance problem? If so, that is typically outside the scope of the image setup mechanims. Ask a question as above or contact the respective server provider.
|
||||
- type: textarea
|
||||
id: problem
|
||||
attributes:
|
||||
label: Describe the problem
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: container
|
||||
attributes:
|
||||
label: Container definition
|
||||
description: Please provide the compose file or run command used to create the container
|
||||
value: |
|
||||
```
|
||||
Paste run command or compose file here
|
||||
```
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Container logs
|
||||
description: |
|
||||
Please provide container logs from the start of the container, which will be the ones prefixed with `[init]`. It is even better if you can set the variable `DEBUG` to "true" and provide those debug container logs.
|
||||
value: |
|
||||
```
|
||||
Paste logs here
|
||||
```
|
||||
7
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
7
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
contact_links:
|
||||
- name: Ask a question in discussions
|
||||
url: https://github.com/itzg/docker-minecraft-server/discussions
|
||||
about: Please ask questions here
|
||||
- name: Ask a question on Discord
|
||||
url: https://discord.gg/DXfKpjB
|
||||
about: Please ask questions here
|
||||
29
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
Normal file
29
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
name: Enhancement Request
|
||||
description: Request an enhancement
|
||||
labels:
|
||||
- enhancement
|
||||
- status/needs triage
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to request an enhancement.
|
||||
|
||||
Even if you plan on submitting a pull request with a contributed enhancement it is best to describe the enhancement here first. Somebody might already be working on a similar thing and could use your help.
|
||||
- type: dropdown
|
||||
id: type
|
||||
attributes:
|
||||
label: Enhancement Type
|
||||
options:
|
||||
- Improve an existing feature
|
||||
- A completely new feature
|
||||
- New server type
|
||||
- Not sure
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe the enhancement
|
||||
validations:
|
||||
required: true
|
||||
7
.github/dependabot.yml
vendored
Normal file
7
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
version: 2
|
||||
updates:
|
||||
# Maintain dependencies for GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
4
.github/release.yml
vendored
Normal file
4
.github/release.yml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
changelog:
|
||||
exclude:
|
||||
authors:
|
||||
- dependabot
|
||||
176
.github/workflows/build-multiarch.yml
vendored
Normal file
176
.github/workflows/build-multiarch.yml
vendored
Normal file
@@ -0,0 +1,176 @@
|
||||
name: Test and Build multi-architecture
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- test/**
|
||||
tags:
|
||||
- "[0-9]+.[0-9]+.[0-9]+"
|
||||
paths-ignore:
|
||||
- "*.md"
|
||||
- "docs/**"
|
||||
- "examples/**"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
variant:
|
||||
- java17
|
||||
- java17-graalvm-ce
|
||||
- java17-jdk
|
||||
- java17-openj9
|
||||
- java17-alpine
|
||||
- java8
|
||||
- java8-graalvm-ce
|
||||
- java8-multiarch
|
||||
- java8-openj9
|
||||
- java8-jdk
|
||||
- java11
|
||||
- java11-openj9
|
||||
- java11-jdk
|
||||
include:
|
||||
# JAVA 17:
|
||||
- variant: java17
|
||||
# jammy doesn't work until minecraft updates to https://github.com/netty/netty/issues/12343
|
||||
baseImage: eclipse-temurin:17-jre-focal
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||
mcVersion: 1.18.2
|
||||
- variant: java17-graalvm-ce
|
||||
baseImage: ghcr.io/graalvm/graalvm-ce:ol8-java17
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: 1.18.2
|
||||
- variant: java17-jdk
|
||||
baseImage: eclipse-temurin:17-focal
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||
mcVersion: 1.18.2
|
||||
- variant: java17-openj9
|
||||
baseImage: ibm-semeru-runtimes:open-17-jre
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: 1.18.2
|
||||
- variant: java17-alpine
|
||||
baseImage: eclipse-temurin:17-jre-alpine
|
||||
platforms: linux/amd64
|
||||
mcVersion: 1.18.2
|
||||
# JAVA 11:
|
||||
- variant: java11
|
||||
baseImage: adoptopenjdk:11-jre-hotspot
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||
mcVersion: 1.16.5
|
||||
- variant: java11-jdk
|
||||
baseImage: adoptopenjdk:11-jdk-hotspot
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||
mcVersion: 1.16.5
|
||||
- variant: java11-openj9
|
||||
baseImage: ibm-semeru-runtimes:open-11-jre
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: 1.16.5
|
||||
# JAVA 8: NOTE: Unable to go past 8u312 because of Forge dependencies
|
||||
- variant: java8
|
||||
baseImage: openjdk:8-jre-alpine3.9
|
||||
platforms: linux/amd64
|
||||
mcVersion: 1.12.2
|
||||
- variant: java8-graalvm-ce
|
||||
baseImage: ghcr.io/graalvm/graalvm-ce:java8
|
||||
platforms: linux/amd64
|
||||
mcVersion: 1.12.2
|
||||
- variant: java8-multiarch
|
||||
baseImage: eclipse-temurin:8u312-b07-jre-focal
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||
mcVersion: 1.12.2
|
||||
- variant: java8-jdk
|
||||
baseImage: eclipse-temurin:8u312-b07-jdk-focal
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: 1.12.2
|
||||
- variant: java8-openj9
|
||||
baseImage: ibm-semeru-runtimes:open-8u312-b07-jre
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: 1.12.2
|
||||
env:
|
||||
IMAGE_TO_TEST: ${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}
|
||||
HAS_IMAGE_REPO_ACCESS: ${{ secrets.DOCKER_USER != '' && secrets.DOCKER_PASSWORD != '' }}
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# for build-files step
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
# NOTE for forks: if your Docker Hub organization doesn't match your Github repo's,
|
||||
# then the use of ${{ github.repository_owner }} will need to be replaced.
|
||||
images: |
|
||||
${{ github.repository_owner }}/minecraft-server
|
||||
tags: |
|
||||
type=ref,event=tag,enable=${{ matrix.variant == 'java17' }}
|
||||
type=ref,event=tag,suffix=-${{ matrix.variant }}
|
||||
type=raw,value=${{ matrix.variant }}
|
||||
flavor: |
|
||||
latest=${{ matrix.variant == 'java17' }}
|
||||
labels: |
|
||||
org.opencontainers.image.authors=Geoff Bourne <itzgeoff@gmail.com>
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2.0.0
|
||||
|
||||
- name: Build for test
|
||||
uses: docker/build-push-action@v3.1.1
|
||||
with:
|
||||
platforms: linux/amd64
|
||||
tags: ${{ env.IMAGE_TO_TEST }}
|
||||
# ensure latest base image is used
|
||||
pull: true
|
||||
# load into daemon for test usage in next step
|
||||
load: true
|
||||
push: false
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ matrix.baseImage }}
|
||||
cache-from: type=gha,scope=${{ matrix.variant }}
|
||||
# no cache-to to avoid cross-cache update from next build step
|
||||
|
||||
- name: Run tests
|
||||
env:
|
||||
MINECRAFT_VERSION: ${{ matrix.mcVersion }}
|
||||
VARIANT: ${{ matrix.variant }}
|
||||
MODS_FORGEAPI_KEY: ${{ secrets.MODS_FORGEAPI_KEY }}
|
||||
run: |
|
||||
tests/test.sh
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2
|
||||
if: env.HAS_IMAGE_REPO_ACCESS
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v3.1.1
|
||||
if: github.actor == github.repository_owner
|
||||
with:
|
||||
platforms: ${{ matrix.platforms }}
|
||||
push: >
|
||||
${{
|
||||
github.ref_type == 'tag'
|
||||
|| github.ref_name == 'master'
|
||||
|| ( github.event_name == 'pull_request'
|
||||
&& env.HAS_IMAGE_REPO_ACCESS
|
||||
&& contains(github.event.pull_request.labels.*.name, 'ci/push-image')
|
||||
)
|
||||
}}
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
# ensure latest base image is used
|
||||
pull: true
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ matrix.baseImage }}
|
||||
BUILD_FILES_REV=${{ steps.build-files-rev.outputs.REV }}
|
||||
cache-from: type=gha,scope=${{ matrix.variant }}
|
||||
cache-to: type=gha,mode=max,scope=${{ matrix.variant }}
|
||||
26
.github/workflows/discord.yml
vendored
Normal file
26
.github/workflows/discord.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
name: Discord notifications
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["ContinuousIntegration", "Build and Publish", "Build and publish multiarch" ]
|
||||
types:
|
||||
- completed
|
||||
|
||||
env:
|
||||
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
|
||||
jobs:
|
||||
discord:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: on-success
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
uses: Ilshidur/action-discord@master
|
||||
with:
|
||||
args: "Github repo: ${{ github.repository }}\n- Branch: ${{ github.event.workflow_run.head_branch }}\n- [Link: to Actions](<${{ github.event.workflow_run.html_url }}>)\n- Status: 🎉 ${{ github.event.workflow_run.conclusion }} 🍏"
|
||||
- name: on-failure
|
||||
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
|
||||
uses: Ilshidur/action-discord@master
|
||||
with:
|
||||
args: "Github repo: ${{ github.repository }}\n- Branch: ${{ github.event.workflow_run.head_branch }}\n- [Link: to Actions](<${{ github.event.workflow_run.html_url }}>)\n- Status: 🤔 ${{ github.event.workflow_run.conclusion }} 💣💥"
|
||||
33
.github/workflows/issue-label.yml
vendored
Normal file
33
.github/workflows/issue-label.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Issue labels
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [labeled, reopened, closed, deleted]
|
||||
|
||||
env:
|
||||
DISCORD_WEBHOOK: ${{ secrets.DISCORD_ISSUES_WEBHOOK }}
|
||||
|
||||
jobs:
|
||||
labelNotify:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: notify on label
|
||||
if: >
|
||||
github.event.label.name == 'enhancement'
|
||||
|| github.event.label.name == 'bug'
|
||||
|| github.event.label.name == 'help wanted'
|
||||
|| github.event.label.name == 'priority/high'
|
||||
|| github.event.label.name == 'question'
|
||||
|| github.event.label.name == 'status/waiting on upstream'
|
||||
uses: Ilshidur/action-discord@master
|
||||
with:
|
||||
args: "[${{ github.event.issue.title }} (#${{ github.event.issue.number }})](<${{ github.event.issue.html_url }}>) added `${{ github.event.label.name }}` label"
|
||||
- name: notify on action change
|
||||
if: >
|
||||
github.event.action == 'closed'
|
||||
|| github.event.action == 'reopened'
|
||||
|| github.event.action == 'deleted'
|
||||
uses: Ilshidur/action-discord@master
|
||||
with:
|
||||
args: "[${{ github.event.issue.title }} (#${{ github.event.issue.number }})](<${{ github.event.issue.html_url }}>) has been `${{ github.event.action }}` by `${{ github.event.sender.login }}`"
|
||||
25
.github/workflows/stale-check.yml
vendored
Normal file
25
.github/workflows/stale-check.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
name: Stale Check
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: 0 2 * * *
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-20.04
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Process Stale Issues
|
||||
uses: actions/stale@v6
|
||||
with:
|
||||
stale-issue-label: status/stale
|
||||
stale-pr-label: status/stale
|
||||
stale-issue-message: >
|
||||
This issue is stale because it has been open 30 days with no activity.
|
||||
Please add a comment describing the reason to keep this issue open.
|
||||
days-before-stale: 30
|
||||
days-before-close: 5
|
||||
exempt-issue-labels: 'enhancement,keep,status/needs triage,priority/high'
|
||||
|
||||
69
.github/workflows/verify-pr.yml
vendored
Normal file
69
.github/workflows/verify-pr.yml
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
name: Verify PR
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
types: [assigned, opened, synchronize, labeled]
|
||||
paths-ignore:
|
||||
- "*.md"
|
||||
- "docs/**"
|
||||
- "examples/**"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
variant:
|
||||
- java17
|
||||
- java17-alpine
|
||||
- java8-multiarch
|
||||
include:
|
||||
# JAVA 17:
|
||||
- variant: java17
|
||||
# jammy doesn't work until minecraft updates to https://github.com/netty/netty/issues/12343
|
||||
baseImage: eclipse-temurin:17-jre-focal
|
||||
platforms: linux/amd64
|
||||
mcVersion: 1.18.2
|
||||
- variant: java17-alpine
|
||||
baseImage: eclipse-temurin:17-jre-alpine
|
||||
platforms: linux/amd64
|
||||
mcVersion: 1.18.2
|
||||
- variant: java8-multiarch
|
||||
baseImage: eclipse-temurin:8u312-b07-jre-focal
|
||||
platforms: linux/amd64
|
||||
mcVersion: 1.12.2
|
||||
env:
|
||||
IMAGE_TO_TEST: ${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# for build-files step
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Build for test
|
||||
uses: docker/build-push-action@v3.1.1
|
||||
with:
|
||||
platforms: linux/amd64
|
||||
tags: ${{ env.IMAGE_TO_TEST }}
|
||||
# ensure latest base image is used
|
||||
pull: true
|
||||
# load into daemon for test usage in next step
|
||||
load: true
|
||||
push: false
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ matrix.baseImage }}
|
||||
cache-from: type=gha,scope=${{ matrix.variant }}
|
||||
|
||||
- name: Run tests
|
||||
env:
|
||||
MINECRAFT_VERSION: ${{ matrix.mcVersion }}
|
||||
VARIANT: ${{ matrix.variant }}
|
||||
MODS_FORGEAPI_KEY: ${{ secrets.MODS_FORGEAPI_KEY }}
|
||||
DEBUG: ${{ runner.debug }}
|
||||
run: |
|
||||
tests/test.sh
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -1,2 +1,6 @@
|
||||
.vscode
|
||||
/data/
|
||||
/.idea/
|
||||
*.iml
|
||||
.idea
|
||||
/gh-md-toc
|
||||
personal-build-and-develop.*
|
||||
|
||||
11
BUILDING.md
Normal file
11
BUILDING.md
Normal file
@@ -0,0 +1,11 @@
|
||||
Ensure buildx/BuildKit support is enabled and run:
|
||||
|
||||
```shell script
|
||||
docker buildx build --platform=linux/arm64 --platform=linux/arm/v7 --platform=linux/amd64 --tag itzg/minecraft-server:multiarch --push .
|
||||
```
|
||||
|
||||
To build for local testing, use:
|
||||
|
||||
```shell script
|
||||
docker buildx build --platform=linux/amd64 --tag mc-multiarch --load .
|
||||
```
|
||||
99
DEVELOPMENT.md
Normal file
99
DEVELOPMENT.md
Normal file
@@ -0,0 +1,99 @@
|
||||
## Adding a server type
|
||||
|
||||
Adding a new server `TYPE` can vary due to the complexity of obtaining and configuring each type; however, the addition of any server type includes at least the following steps:
|
||||
|
||||
1. Copy an existing "start-deploy*" script, such as [start-deployMohist](scripts/start-deployMohist) and rename it accordingly making sure to retain the "start-deploy" prefix
|
||||
2. Modify the type-specific behavior between the "start-utils" preamble and the hand-off to `start-setupWorld` at the end of the script
|
||||
3. Develop and test the changes using the [iterative process described below](#iterative-script-development)
|
||||
4. Add a case-entry to the `case "${TYPE^^}"` in [start-configuration](scripts/start-configuration)
|
||||
5. Add a section to the [README](README.md). It is recommended to copy-modify an existing section to retain a similar wording and level of detail
|
||||
6. [Submit a pull request](https://github.com/itzg/docker-minecraft-server/pulls)
|
||||
|
||||
## Iterative script development
|
||||
|
||||
Individual scripts can be iteratively developed, debugged, and tested using the following procedure.
|
||||
|
||||
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:MODS_FORGEAPI_KEY='$2a$...'
|
||||
$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 MODS_FORGEAPI_KEY='$2a$...'
|
||||
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 script
|
||||
docker run -it --rm -v ${PWD}:/scripts -e SCRIPTS=/scripts/ --entrypoint bash mc-dev
|
||||
```
|
||||
|
||||
From within the container you can run individual scripts via the attached `/scripts/` path; however, be sure to set any environment variables expected by the scripts by either `export`ing them manually:
|
||||
|
||||
```shell script
|
||||
export VANILLA_VERSION=1.12.2
|
||||
/scripts/start-magma
|
||||
```
|
||||
|
||||
...or pre-pending script execution:
|
||||
|
||||
```shell script
|
||||
VANILLA_VERSION=1.12.2 /scripts/start-magma
|
||||
```
|
||||
|
||||
> 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 mc-image-helper
|
||||
|
||||
In the cloned copy of [`mc-image-helper`](https://github.com/itzg/mc-image-helper), create an up-to-date snapshot build of the tgz distribution using:
|
||||
|
||||
```shell
|
||||
./gradlew distTar
|
||||
```
|
||||
|
||||
Assuming [http-server](https://www.npmjs.com/package/http-server) is installed globally, start a static web server using:
|
||||
|
||||
```shell
|
||||
http-server ./build/distributions -p 8080
|
||||
```
|
||||
|
||||
Note the port that was selected by http-server and pass the build arguments, such as:
|
||||
|
||||
```shell
|
||||
--build-arg MC_HELPER_VERSION=1.8.1-SNAPSHOT \
|
||||
--build-arg MC_HELPER_BASE_URL=http://host.docker.internal:8080
|
||||
```
|
||||
|
||||
Now the image can be built like normal, and it will install mc-image-helper from the locally built copy.
|
||||
|
||||
## Generating release notes
|
||||
|
||||
The following git command can be used to provide the bulk of release notes content:
|
||||
|
||||
```shell script
|
||||
git log --invert-grep --grep "^ci:" --grep "^misc:" --grep "^docs:" --pretty="* %s" 1.1.0..1.2.0
|
||||
```
|
||||
73
Dockerfile
Normal file
73
Dockerfile
Normal file
@@ -0,0 +1,73 @@
|
||||
# syntax = docker/dockerfile:1.3
|
||||
|
||||
ARG BASE_IMAGE=eclipse-temurin:17-jre-focal
|
||||
FROM ${BASE_IMAGE}
|
||||
|
||||
# CI system should set this to a hash or git revision of the build directory and it's contents to
|
||||
# ensure consistent cache updates.
|
||||
ARG BUILD_FILES_REV=1
|
||||
RUN --mount=target=/build,source=build \
|
||||
REV=${BUILD_FILES_REV} /build/run.sh install-packages
|
||||
|
||||
RUN --mount=target=/build,source=build \
|
||||
REV=${BUILD_FILES_REV} /build/run.sh setup-user
|
||||
|
||||
COPY --chmod=644 files/sudoers* /etc/sudoers.d
|
||||
|
||||
EXPOSE 25565 25575
|
||||
|
||||
# hook into docker BuildKit --platform support
|
||||
# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
|
||||
ARG TARGETOS
|
||||
ARG TARGETARCH
|
||||
ARG TARGETVARIANT
|
||||
|
||||
ARG EASY_ADD_VER=0.7.1
|
||||
ADD https://github.com/itzg/easy-add/releases/download/${EASY_ADD_VER}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
|
||||
RUN chmod +x /usr/bin/easy-add
|
||||
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=1.2.0 --var app=restify --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.6.0 --var app=rcon-cli --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.11.0 --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.8.1 --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 MC_HELPER_VERSION=1.22.7
|
||||
ARG MC_HELPER_RELEASE=v${MC_HELPER_VERSION}
|
||||
ARG MC_HELPER_BASE_URL=https://github.com/itzg/mc-image-helper/releases/download/${MC_HELPER_RELEASE}
|
||||
RUN curl -fsSL ${MC_HELPER_BASE_URL}/mc-image-helper-${MC_HELPER_VERSION}.tgz \
|
||||
| tar -C /usr/share -zxf - \
|
||||
&& ln -s /usr/share/mc-image-helper-${MC_HELPER_VERSION}/bin/mc-image-helper /usr/bin
|
||||
|
||||
VOLUME ["/data"]
|
||||
WORKDIR /data
|
||||
|
||||
STOPSIGNAL SIGTERM
|
||||
|
||||
# End user MUST set EULA and change RCON_PASSWORD
|
||||
ENV TYPE=VANILLA VERSION=LATEST EULA="" UID=1000 GID=1000 RCON_PASSWORD=minecraft
|
||||
|
||||
COPY --chmod=755 scripts/start* /
|
||||
COPY --chmod=755 bin/ /usr/local/bin/
|
||||
COPY --chmod=755 bin/mc-health /health.sh
|
||||
COPY --chmod=644 files/log4j2.xml /image/log4j2.xml
|
||||
COPY --chmod=755 files/auto /auto
|
||||
|
||||
RUN dos2unix /start* /auto/*
|
||||
|
||||
ENTRYPOINT [ "/start" ]
|
||||
HEALTHCHECK --start-period=1m --interval=5s --retries=24 CMD mc-health
|
||||
18
bin/mc-health
Executable file
18
bin/mc-health
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
# shellcheck source=../scripts/start-utils
|
||||
. "${SCRIPTS:-/}start-utils"
|
||||
if [ -f /data/.mc-health.env ]; then
|
||||
. /data/.mc-health.env
|
||||
fi
|
||||
|
||||
if isTrue "${DISABLE_HEALTHCHECK}"; then
|
||||
echo "Healthcheck disabled"
|
||||
exit 0
|
||||
elif isTrue "${ENABLE_AUTOPAUSE}" && [[ "$( ps -ax -o stat,comm | grep 'java' | awk '{ print $1 }')" =~ ^T.*$ ]]; then
|
||||
echo "Java process suspended by Autopause function"
|
||||
exit 0
|
||||
else
|
||||
mc-monitor status "${MC_HEALTH_EXTRA_ARGS[@]}" --host localhost --port "${SERVER_PORT:-25565}"
|
||||
exit $?
|
||||
fi
|
||||
23
bin/mc-send-to-console
Executable file
23
bin/mc-send-to-console
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
. "/start-utils"
|
||||
: "${CONSOLE_IN_NAMED_PIPE:=/tmp/minecraft-console-in}"
|
||||
|
||||
if [ $# = 0 ]; then
|
||||
echo "ERROR: pass console commands as arguments"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -p "${CONSOLE_IN_NAMED_PIPE}" ]; then
|
||||
echo "ERROR: named pipe ${CONSOLE_IN_NAMED_PIPE} is missing"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$(id -u)" = 0 ]; then
|
||||
if [[ $(getDistro) == alpine ]]; then
|
||||
exec su-exec minecraft bash -c "echo $* > '${CONSOLE_IN_NAMED_PIPE:-/tmp/minecraft-console-in}'"
|
||||
else
|
||||
exec gosu minecraft bash -c "echo $* > '${CONSOLE_IN_NAMED_PIPE:-/tmp/minecraft-console-in}'"
|
||||
fi
|
||||
else
|
||||
echo "$@" >"${CONSOLE_IN_NAMED_PIPE:-/tmp/minecraft-console-in}"
|
||||
fi
|
||||
18
bin/mcstatus
Executable file
18
bin/mcstatus
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "WARNING: mcstatus is deprecated; calling mc-monitor instead"
|
||||
|
||||
##### mcstatus shim for mc-monitor
|
||||
# handles translating calls to
|
||||
# mcstatus (host:port) (command)
|
||||
# where the actual command is ignore, but is typically ping or status
|
||||
|
||||
addr="$1"
|
||||
|
||||
IFS=':'
|
||||
read -a parts <<< "${addr}"
|
||||
if [[ ${#parts[*]} -gt 1 ]]; then
|
||||
exec mc-monitor status --host ${parts[0]} --port ${parts[1]}
|
||||
else
|
||||
exec mc-monitor status --host ${parts[0]}
|
||||
fi
|
||||
101
bin/rcon-cmds-daemon.sh
Normal file
101
bin/rcon-cmds-daemon.sh
Normal file
@@ -0,0 +1,101 @@
|
||||
#!/bin/bash
|
||||
|
||||
: "${RCON_CMDS_STARTUP:=}"
|
||||
: "${RCON_CMDS_ON_CONNECT:=}"
|
||||
: "${RCON_CMDS_ON_DISCONNECT:=}"
|
||||
: "${RCON_CMDS_FIRST_CONNECT:=}"
|
||||
: "${RCON_CMDS_LAST_DISCONNECT:=}"
|
||||
: "${RCON_CMDS_PERIOD:=10}"
|
||||
|
||||
# needed for the clients connected function residing in autopause
|
||||
# shellcheck source=../auto/autopause-fcns.sh
|
||||
. /auto/autopause-fcns.sh
|
||||
|
||||
# shellcheck source=start-utils
|
||||
. ${SCRIPTS:-/}start-utils
|
||||
|
||||
run_command(){
|
||||
rcon_cmd="$1"
|
||||
logRcon "running - $rcon_cmd"
|
||||
output=$(rcon-cli "$rcon_cmd")
|
||||
logRcon "$output"
|
||||
}
|
||||
|
||||
|
||||
# wait for java process to be started
|
||||
while :
|
||||
do
|
||||
if java_process_exists ; then
|
||||
break
|
||||
fi
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
CLIENTCONNECTIONS=0
|
||||
STATE=INIT
|
||||
|
||||
while :
|
||||
do
|
||||
case X$STATE in
|
||||
XINIT)
|
||||
# Server startup
|
||||
if mc_server_listening ; then
|
||||
logRcon "MCServer is listening, running startup"
|
||||
if [[ "$RCON_CMDS_STARTUP" ]]; then
|
||||
while read -r cmd; do
|
||||
run_command "$cmd"
|
||||
done <<< "$RCON_CMDS_STARTUP"
|
||||
fi
|
||||
if
|
||||
[[ -z "$RCON_CMDS_ON_CONNECT" ]] &&
|
||||
[[ -z "$RCON_CMDS_ON_DISCONNECT" ]] &&
|
||||
[[ -z "$RCON_CMDS_FIRST_CONNECT" ]] &&
|
||||
[[ -z "$RCON_CMDS_LAST_DISCONNECT" ]]
|
||||
then
|
||||
logRcon "No addition rcon commands are given, stopping rcon cmd service"
|
||||
exit 0
|
||||
fi
|
||||
STATE=II
|
||||
fi
|
||||
;;
|
||||
XII)
|
||||
CURR_CLIENTCONNECTIONS=$(java_clients_connections)
|
||||
# First client connection
|
||||
# Setting priority run order: on first client connection is usually to STOP maintence, aka DO THIS FIRST
|
||||
if (( CURR_CLIENTCONNECTIONS > 0 )) && (( CLIENTCONNECTIONS == 0 )) && [[ "$RCON_CMDS_FIRST_CONNECT" ]]; then
|
||||
logRcon "First Clients has Connected, running first connect cmds"
|
||||
while read -r cmd; do
|
||||
run_command "$cmd"
|
||||
done <<< "$RCON_CMDS_FIRST_CONNECT"
|
||||
fi
|
||||
|
||||
# When a client joins
|
||||
if (( CURR_CLIENTCONNECTIONS > CLIENTCONNECTIONS )) && [[ "$RCON_CMDS_ON_CONNECT" ]]; then
|
||||
logRcon "Clients have Connected, running connect cmds"
|
||||
while read -r cmd; do
|
||||
run_command "$cmd"
|
||||
done <<< "$RCON_CMDS_ON_CONNECT"
|
||||
# When a client leaves
|
||||
elif (( CURR_CLIENTCONNECTIONS < CLIENTCONNECTIONS )) && [[ "$RCON_CMDS_ON_DISCONNECT" ]]; then
|
||||
logRcon "Clients have Disconnected, running disconnect cmds"
|
||||
while read -r cmd; do
|
||||
run_command "$cmd"
|
||||
done <<< "$RCON_CMDS_ON_DISCONNECT"
|
||||
fi
|
||||
|
||||
# Last client connection
|
||||
# Setting priority run order: on last client connection is usually to START maintence, aka DO THIS LAST
|
||||
if (( CURR_CLIENTCONNECTIONS == 0 )) && (( CLIENTCONNECTIONS > 0 )) && [[ "$RCON_CMDS_LAST_DISCONNECT" ]]; then
|
||||
logRcon "ALL Clients have Disconnected, running last disconnect cmds"
|
||||
while read -r cmd; do
|
||||
run_command "$cmd"
|
||||
done <<< "$RCON_CMDS_LAST_DISCONNECT"
|
||||
fi
|
||||
CLIENTCONNECTIONS=$CURR_CLIENTCONNECTIONS
|
||||
;;
|
||||
*)
|
||||
logRcon "Error: invalid state: $STATE"
|
||||
;;
|
||||
esac
|
||||
sleep "$RCON_CMDS_PERIOD"
|
||||
done
|
||||
14
build
14
build
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
pkgs=ubuntu-openjdk-7
|
||||
pkgs="$pkgs minecraft-server"
|
||||
pkgs="$pkgs elasticsearch"
|
||||
pkgs="$pkgs kibana"
|
||||
pkgs="$pkgs titan-gremlin"
|
||||
pkgs="$pkgs cassandra"
|
||||
|
||||
for p in $pkgs
|
||||
do
|
||||
docker build -t itzg/$p $p
|
||||
done
|
||||
|
||||
26
build/alpine/install-packages.sh
Executable file
26
build/alpine/install-packages.sh
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
apk add --no-cache -U \
|
||||
openssl \
|
||||
imagemagick \
|
||||
file \
|
||||
lsof \
|
||||
su-exec \
|
||||
coreutils \
|
||||
findutils \
|
||||
procps \
|
||||
shadow \
|
||||
bash \
|
||||
curl iputils \
|
||||
git \
|
||||
jq \
|
||||
mysql-client \
|
||||
tzdata \
|
||||
rsync \
|
||||
nano \
|
||||
sudo \
|
||||
knock \
|
||||
tar \
|
||||
zstd
|
||||
6
build/alpine/setup-user.sh
Executable file
6
build/alpine/setup-user.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
addgroup -g 1000 minecraft
|
||||
adduser -Ss /bin/false -u 1000 -G minecraft -h /home/minecraft minecraft
|
||||
12
build/ol/install-gosu.sh
Executable file
12
build/ol/install-gosu.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ $(uname -m) == "aarch64" ]]; then
|
||||
curl -sL -o /bin/gosu https://github.com/tianon/gosu/releases/download/1.14/gosu-arm64
|
||||
chmod +x /bin/gosu
|
||||
elif [[ $(uname -m) == "x86_64" ]]; then
|
||||
curl -sL -o /bin/gosu https://github.com/tianon/gosu/releases/download/1.14/gosu-amd64
|
||||
chmod +x /bin/gosu
|
||||
else
|
||||
echo "Not supported!"
|
||||
exit 1
|
||||
fi
|
||||
38
build/ol/install-packages.sh
Executable file
38
build/ol/install-packages.sh
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
microdnf install dnf -y
|
||||
|
||||
dnf install 'dnf-command(config-manager)' -y
|
||||
dnf config-manager --set-enabled ol8_codeready_builder
|
||||
tee /etc/yum.repos.d/ol8-epel.repo<<EOF
|
||||
[ol8_developer_EPEL]
|
||||
name= Oracle Linux \$releasever EPEL (\$basearch)
|
||||
baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/developer/EPEL/\$basearch/
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
|
||||
gpgcheck=1
|
||||
enabled=1
|
||||
EOF
|
||||
dnf update -y
|
||||
|
||||
dnf install -y ImageMagick \
|
||||
file \
|
||||
sudo \
|
||||
net-tools \
|
||||
iputils \
|
||||
curl \
|
||||
git \
|
||||
jq \
|
||||
dos2unix \
|
||||
mysql \
|
||||
procps-ng \
|
||||
tzdata \
|
||||
rsync \
|
||||
nano \
|
||||
unzip \
|
||||
zstd \
|
||||
lbzip2 \
|
||||
knock
|
||||
|
||||
bash /build/ol/install-gosu.sh
|
||||
2
build/ol/setup-user.sh
Executable file
2
build/ol/setup-user.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
groupadd --gid 1000 minecraft
|
||||
useradd --system --shell /bin/false --uid 1000 -g minecraft --home /data minecraft
|
||||
7
build/run.sh
Executable file
7
build/run.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
distro=$(cat /etc/os-release | grep -E "^ID=" | cut -d= -f2 | sed -e 's/"//g')
|
||||
|
||||
"$(dirname "$0")/${distro}/$1".sh
|
||||
28
build/ubuntu/install-packages.sh
Executable file
28
build/ubuntu/install-packages.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
apt-get update
|
||||
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get install -y \
|
||||
imagemagick \
|
||||
file \
|
||||
gosu \
|
||||
sudo \
|
||||
net-tools \
|
||||
iputils-ping \
|
||||
curl \
|
||||
git \
|
||||
jq \
|
||||
dos2unix \
|
||||
mysql-client \
|
||||
tzdata \
|
||||
rsync \
|
||||
nano \
|
||||
unzip \
|
||||
zstd \
|
||||
lbzip2 \
|
||||
knockd
|
||||
|
||||
apt-get clean
|
||||
6
build/ubuntu/setup-user.sh
Executable file
6
build/ubuntu/setup-user.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
addgroup --gid 1000 minecraft
|
||||
adduser --system --shell /bin/false --uid 1000 --ingroup minecraft --home /data minecraft
|
||||
@@ -1,26 +0,0 @@
|
||||
FROM java:openjdk-8u72-jdk
|
||||
|
||||
MAINTAINER itzg
|
||||
|
||||
ENV CASSANDRA_VERSION 2.2.8
|
||||
|
||||
ADD http://mirrors.ibiblio.org/apache/cassandra/$CASSANDRA_VERSION/apache-cassandra-$CASSANDRA_VERSION-bin.tar.gz /tmp/apache-cassandra.tgz
|
||||
RUN tar -C /opt -zxf /tmp/apache-cassandra.tgz && \
|
||||
rm /tmp/apache-cassandra.tgz
|
||||
|
||||
|
||||
RUN mv /opt/apache-cassandra-$CASSANDRA_VERSION /opt/cassandra
|
||||
ENV CASSANDRA_HOME /opt/cassandra
|
||||
ENV CASSANDRA_CONF /conf
|
||||
ENV CASSANDRA_DATA /data
|
||||
WORKDIR $CASSANDRA_HOME
|
||||
|
||||
RUN ln -s $CASSANDRA_HOME/bin/* /usr/local/bin
|
||||
VOLUME ["/data","/conf"]
|
||||
|
||||
EXPOSE 9042 9160 7000 7001
|
||||
|
||||
ADD cassandra.in.sh $CASSANDRA_HOME/cassandra.in.sh
|
||||
RUN mv $CASSANDRA_HOME/bin/cassandra.in.sh $CASSANDRA_HOME/bin/orig.cassandra.in.sh
|
||||
|
||||
CMD ["/opt/cassandra/bin/cassandra", "-f"]
|
||||
@@ -1,9 +0,0 @@
|
||||
Yet another Cassandra image, but this one got container and non-container access right.
|
||||
|
||||
# Basic Usage
|
||||
|
||||
To support access from both Docker containers and external, non-Docker clients:
|
||||
|
||||
docker run -d --name cassandra -e PUBLISH_AS=192.168.59.103 -p 9160:9160 itzg/cassandra
|
||||
|
||||
replacing `192.168.59.103` with your Docker host's LAN IP address.
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
cassYml=$CASSANDRA_HOME/conf/cassandra.yaml
|
||||
|
||||
privateAddr=$(hostname -i)
|
||||
|
||||
seeds=${SEEDS:-${PUBLISH_AS:-$privateAddr}}
|
||||
|
||||
sed -i -e "s/- seeds:.*/- seeds: \"$seeds\"/" \
|
||||
-e "s/listen_address:.*/listen_address: $privateAddr/" \
|
||||
-e "s/rpc_address:.*/rpc_address: $privateAddr/" \
|
||||
-e "s/start_rpc:.*/start_rpc: true/" \
|
||||
-e "s#- /var/lib/cassandra/data#- $CASSANDRA_DATA#" \
|
||||
$cassYml
|
||||
|
||||
if [ -n "$PUBLISH_AS" ]; then
|
||||
sed -i -e "s/\(\s*#\)\?\s*broadcast_address:.*/broadcast_address: $PUBLISH_AS/" $cassYml
|
||||
fi
|
||||
|
||||
# Copy over our tweaked files, but non-clobbering to let user have ultimate control
|
||||
cp -rn $CASSANDRA_HOME/conf/* $CASSANDRA_CONF
|
||||
|
||||
# source the original
|
||||
. $CASSANDRA_HOME/bin/orig.cassandra.in.sh
|
||||
11
circle.yml
11
circle.yml
@@ -1,11 +0,0 @@
|
||||
machine:
|
||||
services:
|
||||
- docker
|
||||
|
||||
test:
|
||||
override:
|
||||
- ./build
|
||||
|
||||
notify:
|
||||
webhooks:
|
||||
- url: https://webhooks.gitter.im/e/4726bb683d8aed018486
|
||||
@@ -1,30 +0,0 @@
|
||||
FROM itzg/ubuntu-openjdk-7
|
||||
|
||||
RUN apt-get update
|
||||
RUN DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get install -yq git curl wget unzip openjdk-7-jdk && \
|
||||
apt-get clean
|
||||
|
||||
ENV MAVEN_VER 3.3.3
|
||||
ENV NODEJS_VER 0.12.7
|
||||
|
||||
RUN wget -O /tmp/maven.tgz http://apache.mirrors.pair.com/maven/maven-3/$MAVEN_VER/binaries/apache-maven-$MAVEN_VER-bin.tar.gz
|
||||
RUN tar xvf /tmp/maven.tgz && rm /tmp/maven.tgz
|
||||
ENV M2_HOME /opt/apache-maven-$MAVEN_VER
|
||||
ENV PATH $PATH:$M2_HOME/bin
|
||||
|
||||
RUN curl -s https://raw.githubusercontent.com/isaacs/nave/master/nave.sh > /usr/local/bin/nave
|
||||
RUN chmod +x /usr/local/bin/nave
|
||||
RUN nave usemain latest
|
||||
|
||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
VOLUME ["/shared"]
|
||||
|
||||
RUN useradd -m -d /home/developer developer
|
||||
|
||||
USER developer
|
||||
RUN curl -s get.gvmtool.net | bash
|
||||
|
||||
WORKDIR /home/developer
|
||||
CMD bash
|
||||
@@ -1,25 +0,0 @@
|
||||
Provides a development/build environment for Java, Groovy, and NodeJS.
|
||||
|
||||
* Provides 'gvm' for Groovy (and more) installation management
|
||||
* Provides 'nave' for NodeJS installation management
|
||||
* Pre-installs the latest NodeJS via nave
|
||||
|
||||
## Using the persistent/shared workarea
|
||||
|
||||
Since devbox containers are intended to be disposable, the image is configured
|
||||
with a "volume" at `/shared`.
|
||||
|
||||
There are a couple of ways you can leverage that volume. Either attach it to
|
||||
a host-local directory:
|
||||
|
||||
docker run -it -v $(pwd)/workarea:/shared --rm itzg/devbox
|
||||
|
||||
or run a "base" container and mounts the `/shared` from that onto any
|
||||
subsequent containers:
|
||||
|
||||
docker run --name devbox-base itzg/devbox touch /shared/READY
|
||||
...later...
|
||||
docker run -it --volumes-from devbox-base --rm itzg/devbox
|
||||
|
||||
**NOTE** I am using the `--rm` option so the devbox containers will be truly
|
||||
"burn after use".
|
||||
16
docker-compose.yml
Normal file
16
docker-compose.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server
|
||||
environment:
|
||||
EULA: "true"
|
||||
ports:
|
||||
- "25565:25565"
|
||||
volumes:
|
||||
- data:/data
|
||||
stdin_open: true
|
||||
tty: true
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
data: {}
|
||||
0
docs/.gitkeep
Normal file
0
docs/.gitkeep
Normal file
1
docs/Minecraft server containment.xml
Normal file
1
docs/Minecraft server containment.xml
Normal file
@@ -0,0 +1 @@
|
||||
<mxfile userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36" version="6.4.4" editor="www.draw.io" type="github"><diagram name="Page-1">1VVNc5swEP01HDMDUiDOMbGd5pK2Ux96VkGAxgJRIRvcX9+VWD40ODOZ1j0Uz9jS2w+t3ts1Ad1W/SfNmvJNZVwGJMz6gO4CQjZRCN8WuAxA8vgwAIUW2QBFM3AQvziCGFecRMZbz9EoJY1ofDBVdc1T42FMa9X5brmS/qkNK/gKOKRMrtHvIjMlolEYzoZXLooSj97EaPjB0mOh1anG8wJCc/cM5oqNudC/LVmmugVE9wHdaqXMsKr6LZeW2pG2Ie7lHetUt+a1+UgAGQLOTJ74WHEiIfQ5E2dbn7kgJ8nPky3q2fDe3DEpijqgT+AheW5mK6wK/HVZ2obVI7ZT6ZFrCHlVrRkdoLSlzwJ2BYwo8WohXSkMPzQstfsOWhCcSlNJ2EX21JFVu8mFlFsllXahdJ/YD+Bnro0AyZ+Gu+yMslnwZjt3LVd/KurCpgptLlWbA5aBXNs0vH+X/mgSFWaFq4obfQEXDKDYBhd/2809RzeIlYt2mxwZ9nkxZZ61hgXKfV16upK+EjBMmuXmruX67KSCATMMYL2SwDU5z5DkvxAE52NNvdHqyBeOoXs8UWIbplP8A3ES3UCVja/K41oVEl5RJYpuoMr9SpU34B+Qr0rD0ITD0JE4TuI/nopwLcKLexYi6OFet6CT3Pt8TjwtCI3IFUJv0eXxis9v2y+fr/D58P/yGf87PmE7v4ycbfHCp/vf</diagram></mxfile>
|
||||
BIN
docs/ftba-version-id-popup.png
Normal file
BIN
docs/ftba-version-id-popup.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 85 KiB |
BIN
docs/level-vs-world.drawio.png
Normal file
BIN
docs/level-vs-world.drawio.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
BIN
docs/motd-example.png
Normal file
BIN
docs/motd-example.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 985 B |
BIN
docs/start-script-flow.drawio.png
Normal file
BIN
docs/start-script-flow.drawio.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
BIN
docs/world-copy-compose-project.drawio.png
Normal file
BIN
docs/world-copy-compose-project.drawio.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 65 KiB |
@@ -1,5 +0,0 @@
|
||||
**This image is now deprecated. **
|
||||
|
||||
Please use [itzg/elasticsearch](https://registry.hub.docker.com/u/itzg/elasticsearch/)
|
||||
instead. See the plugins configuration section for that image to see how
|
||||
to install Marvel.
|
||||
@@ -1,31 +0,0 @@
|
||||
FROM java:8u92-jre-alpine
|
||||
|
||||
MAINTAINER itzg
|
||||
|
||||
RUN apk -U add bash
|
||||
|
||||
ENV ES_VERSION=5.0.2
|
||||
|
||||
ADD https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-$ES_VERSION.tar.gz /tmp/es.tgz
|
||||
RUN cd /usr/share && \
|
||||
tar xf /tmp/es.tgz && \
|
||||
rm /tmp/es.tgz
|
||||
|
||||
EXPOSE 9200 9300
|
||||
|
||||
ENV ES_HOME=/usr/share/elasticsearch-$ES_VERSION \
|
||||
DEFAULT_ES_USER=elasticsearch \
|
||||
DISCOVER_TRANSPORT_IP=eth0 \
|
||||
DISCOVER_HTTP_IP=eth0 \
|
||||
ES_JAVA_OPTS="-Xms1g -Xmx1g"
|
||||
|
||||
RUN adduser -S -s /bin/sh $DEFAULT_ES_USER
|
||||
|
||||
VOLUME ["/data","/conf"]
|
||||
|
||||
WORKDIR $ES_HOME
|
||||
|
||||
COPY start /start
|
||||
COPY log4j2.properties $ES_HOME/config/
|
||||
|
||||
CMD ["/start"]
|
||||
@@ -1,213 +0,0 @@
|
||||
This Docker image provides an easily configurable Elasticsearch node. Via port mappings, it is easy to create an arbitrarily sized cluster of nodes. As long as the versions match, you can mix-and-match "real" Elasticsearch nodes with container-ized ones.
|
||||
|
||||
# Basic Usage
|
||||
|
||||
To start an Elasticsearch data node that listens on the standard ports on your host's network interface:
|
||||
|
||||
docker run -d -p 9200:9200 -p 9300:9300 itzg/elasticsearch
|
||||
|
||||
You'll then be able to connect to the Elasticsearch HTTP interface to confirm it's alive:
|
||||
|
||||
http://DOCKERHOST:9200/
|
||||
|
||||
{
|
||||
"status" : 200,
|
||||
"name" : "Charon",
|
||||
"version" : {
|
||||
"number" : "1.3.5",
|
||||
"build_hash" : "4a50e7df768fddd572f48830ae9c35e4ded86ac1",
|
||||
"build_timestamp" : "2014-11-05T15:21:28Z",
|
||||
"build_snapshot" : false,
|
||||
"lucene_version" : "4.9"
|
||||
},
|
||||
"tagline" : "You Know, for Search"
|
||||
}
|
||||
|
||||
Where `DOCKERHOST` would be the actual hostname of your host running Docker.
|
||||
|
||||
# Simple, multi-node cluster
|
||||
|
||||
To run a multi-node cluster (3-node in this example) on a single Docker machine use:
|
||||
|
||||
docker run -d --name es0 -p 9200:9200 itzg/elasticsearch
|
||||
docker run -d --name es1 --link es0 -e UNICAST_HOSTS=es0 itzg/elasticsearch
|
||||
docker run -d --name es2 --link es0 -e UNICAST_HOSTS=es0 itzg/elasticsearch
|
||||
|
||||
|
||||
and then check the cluster health, such as http://192.168.99.100:9200/_cluster/health?pretty
|
||||
|
||||
{
|
||||
"cluster_name" : "elasticsearch",
|
||||
"status" : "green",
|
||||
"timed_out" : false,
|
||||
"number_of_nodes" : 3,
|
||||
"number_of_data_nodes" : 3,
|
||||
"active_primary_shards" : 0,
|
||||
"active_shards" : 0,
|
||||
"relocating_shards" : 0,
|
||||
"initializing_shards" : 0,
|
||||
"unassigned_shards" : 0
|
||||
}
|
||||
|
||||
# Configuration Summary
|
||||
|
||||
## Ports
|
||||
|
||||
* `9200` - HTTP REST
|
||||
* `9300` - Native transport
|
||||
|
||||
## Volumes
|
||||
|
||||
* `/data` - location of `path.data`
|
||||
* `/conf` - location of `path.conf`
|
||||
|
||||
# Configuration Details
|
||||
|
||||
The following configuration options are specified using `docker run` environment variables (`-e`) like
|
||||
|
||||
docker run ... -e NAME=VALUE ... itzg/elasticsearch
|
||||
|
||||
Since Docker's `-e` settings are baked into the container definition, this image provides an extra feature to change any of the settings below for an existing container. Either create/edit the file `env` in the `/conf` volume mapping or edit within the running container's context using:
|
||||
|
||||
docker exec -it CONTAINER_ID vi /conf/env
|
||||
|
||||
replacing `CONTAINER_ID` with the container's ID or name.
|
||||
|
||||
The contents of the `/conf/env` file are standard shell
|
||||
|
||||
NAME=VALUE
|
||||
|
||||
entries where `NAME` is one of the variables described below.
|
||||
|
||||
Configuration options not explicitly supported below can be specified via the `OPTS` environment variable. For example, by default `OPTS` is set with
|
||||
|
||||
OPTS=-Dnetwork.bind_host=_non_loopback_
|
||||
|
||||
_NOTE: That option is a default since `bind_host` defaults to `localhost` as of 2.0, which isn't helpful for
|
||||
port mapping out from the container_.
|
||||
|
||||
## Cluster Name
|
||||
|
||||
If joining a pre-existing cluster, then you may need to specify a cluster name different than the default "elasticsearch":
|
||||
|
||||
-e CLUSTER=dockers
|
||||
|
||||
## Zen Unicast Hosts
|
||||
|
||||
When joining a multi-physical-host cluster, multicast may not be supported on the physical network. In that case, your node can reference specific one or more hosts in the cluster via the [Zen Unicast Hosts](http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-zen.html#unicast) capability as a comma-separated list of `HOST:PORT` pairs:
|
||||
|
||||
-e UNICAST_HOSTS=HOST:PORT[,HOST:PORT]
|
||||
|
||||
such as
|
||||
|
||||
-e UNICAST_HOSTS=192.168.0.100:9300
|
||||
|
||||
## Plugins
|
||||
|
||||
You can install one or more plugins before startup by passing a comma-separated list of plugins.
|
||||
|
||||
-e PLUGINS=ID[,ID]
|
||||
|
||||
In this example, it will install the Marvel plugin
|
||||
|
||||
-e PLUGINS=elasticsearch/marvel/latest
|
||||
|
||||
Many more plugins [are available here](http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-plugins.html#known-plugins).
|
||||
|
||||
## Publish As
|
||||
|
||||
Since the container gives the Elasticsearch software an isolated perspective of its networking, it will most likely advertise its published address with a container-internal IP address. This can be overridden with a physical networking name and port using:
|
||||
|
||||
-e PUBLISH_AS=DOCKERHOST:9301
|
||||
|
||||
_Author Note: I have yet to hit a case where this was actually necessary. Other
|
||||
than the cosmetic weirdness in the logs, Elasticsearch seems to be quite tolerant._
|
||||
|
||||
## Node Name
|
||||
|
||||
Rather than use the randomly assigned node name, you can indicate a specific one using:
|
||||
|
||||
-e NODE_NAME=Docker
|
||||
|
||||
## Node Type
|
||||
|
||||
If you refer to [the Node section](https://www.elastic.co/guide/en/elasticsearch/reference/2.3/modules-node.html)
|
||||
of the Elasticsearch reference guide, you'll find that there's three main types of nodes: master-eligible, data, and client.
|
||||
|
||||
In larger clusters it is important to dedicate a small number (>= 3) of master nodes. There are also cases where a large cluster may need dedicated gateway nodes that are neither master nor data nodes and purely operate as "smart routers" and have large amounts of CPU and memory to handle client requests and search-reduce.
|
||||
|
||||
To simplify all that, this image provides a `TYPE` variable to let you amongst these combinations. The choices are:
|
||||
|
||||
* (not set, the default) : the default node type which is both master-eligible and a data node
|
||||
* `MASTER` : master-eligible, but holds no data. It is good to have three or more of these in a
|
||||
large cluster
|
||||
* `DATA` (or `NON_MASTER`) : holds data and serves search/index requests. Scale these out for elastic-y goodness.
|
||||
* `GATEWAY` : only operates as a client node or a "smart router". These are the ones whose HTTP port 9200 will need to be exposed
|
||||
|
||||
A [Docker Compose](https://docs.docker.com/compose/overview/) file will serve as a good example of these three node types:
|
||||
|
||||
```
|
||||
version: '2'
|
||||
|
||||
services:
|
||||
gateway:
|
||||
image: itzg/elasticsearch
|
||||
environment:
|
||||
UNICAST_HOSTS: master
|
||||
TYPE: GATEWAY
|
||||
ports:
|
||||
- "9200:9200"
|
||||
|
||||
master:
|
||||
image: itzg/elasticsearch
|
||||
environment:
|
||||
UNICAST_HOSTS: gateway
|
||||
TYPE: MASTER
|
||||
MIN_MASTERS: 2
|
||||
|
||||
data:
|
||||
image: itzg/elasticsearch
|
||||
environment:
|
||||
UNICAST_HOSTS: master,gateway
|
||||
TYPE: DATA
|
||||
```
|
||||
|
||||
## Minimum Master Nodes
|
||||
|
||||
In combination with the `TYPE` variable above, you will also want to configure the minimum master nodes to [avoid split-brain](https://www.elastic.co/guide/en/elasticsearch/reference/2.3/modules-node.html#split-brain) during network outages.
|
||||
|
||||
The minimum, which can be calculated as `(master_eligible_nodes / 2) + 1`, can be set with the `MIN_MASTERS` variable.
|
||||
|
||||
Using the Docker Compose file above, a value of `2` is appropriate when scaling the cluster to 3 master nodes:
|
||||
|
||||
docker-compose scale master=3
|
||||
|
||||
## Auto transport/http discovery with Swarm Mode
|
||||
|
||||
When using Docker Swarm mode (starting with 1.12), the overlay and ingress network interfaces are assigned
|
||||
multiple IP addresses. As a result, it creates confusion for the transport publish logic even when using
|
||||
the special value `_eth0_`.
|
||||
|
||||
To resolve this, add
|
||||
|
||||
-e DISCOVER_TRANSPORT_IP=eth0
|
||||
|
||||
replacing `eth0` with another interface within the container, if needed.
|
||||
|
||||
The same can be done for publish/binding of the http module by adding:
|
||||
|
||||
-e DISCOVERY_HTTP_IP=eth2
|
||||
|
||||
## Heap size and other JVM options
|
||||
|
||||
By default this image will run Elasticsearch with a Java heap size of 1 GB. If that value
|
||||
or any other JVM options need to be adjusted, then replace the `ES_JAVA_OPTS`
|
||||
environment variable.
|
||||
|
||||
For example, this would allow for the use of 16 GB of heap:
|
||||
|
||||
-e ES_JAVA_OPTS="-Xms16g -Xmx16g"
|
||||
|
||||
Refer to [this page](https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html)
|
||||
for more information about why both the minimum and maximum sizes were set to
|
||||
the same value.
|
||||
@@ -1,74 +0,0 @@
|
||||
status = error
|
||||
|
||||
# log action execution errors for easier debugging
|
||||
logger.action.name = org.elasticsearch.action
|
||||
logger.action.level = debug
|
||||
|
||||
appender.console.type = Console
|
||||
appender.console.name = console
|
||||
appender.console.layout.type = PatternLayout
|
||||
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n
|
||||
|
||||
appender.rolling.type = RollingFile
|
||||
appender.rolling.name = rolling
|
||||
appender.rolling.fileName = ${sys:es.logs}.log
|
||||
appender.rolling.layout.type = PatternLayout
|
||||
appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%.10000m%n
|
||||
appender.rolling.filePattern = ${sys:es.logs}-%d{yyyy-MM-dd}.log
|
||||
appender.rolling.policies.type = Policies
|
||||
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
|
||||
appender.rolling.policies.time.interval = 1
|
||||
appender.rolling.policies.time.modulate = true
|
||||
|
||||
rootLogger.level = info
|
||||
rootLogger.appenderRef.console.ref = console
|
||||
#rootLogger.appenderRef.rolling.ref = rolling
|
||||
|
||||
appender.deprecation_rolling.type = RollingFile
|
||||
appender.deprecation_rolling.name = deprecation_rolling
|
||||
appender.deprecation_rolling.fileName = ${sys:es.logs}_deprecation.log
|
||||
appender.deprecation_rolling.layout.type = PatternLayout
|
||||
appender.deprecation_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%.10000m%n
|
||||
appender.deprecation_rolling.filePattern = ${sys:es.logs}_deprecation-%i.log.gz
|
||||
appender.deprecation_rolling.policies.type = Policies
|
||||
appender.deprecation_rolling.policies.size.type = SizeBasedTriggeringPolicy
|
||||
appender.deprecation_rolling.policies.size.size = 1GB
|
||||
appender.deprecation_rolling.strategy.type = DefaultRolloverStrategy
|
||||
appender.deprecation_rolling.strategy.max = 4
|
||||
|
||||
logger.deprecation.name = org.elasticsearch.deprecation
|
||||
logger.deprecation.level = warn
|
||||
#logger.deprecation.appenderRef.deprecation_rolling.ref = deprecation_rolling
|
||||
logger.deprecation.additivity = false
|
||||
|
||||
appender.index_search_slowlog_rolling.type = RollingFile
|
||||
appender.index_search_slowlog_rolling.name = index_search_slowlog_rolling
|
||||
appender.index_search_slowlog_rolling.fileName = ${sys:es.logs}_index_search_slowlog.log
|
||||
appender.index_search_slowlog_rolling.layout.type = PatternLayout
|
||||
appender.index_search_slowlog_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %marker%.10000m%n
|
||||
appender.index_search_slowlog_rolling.filePattern = ${sys:es.logs}_index_search_slowlog-%d{yyyy-MM-dd}.log
|
||||
appender.index_search_slowlog_rolling.policies.type = Policies
|
||||
appender.index_search_slowlog_rolling.policies.time.type = TimeBasedTriggeringPolicy
|
||||
appender.index_search_slowlog_rolling.policies.time.interval = 1
|
||||
appender.index_search_slowlog_rolling.policies.time.modulate = true
|
||||
|
||||
logger.index_search_slowlog_rolling.name = index.search.slowlog
|
||||
logger.index_search_slowlog_rolling.level = trace
|
||||
logger.index_search_slowlog_rolling.appenderRef.index_search_slowlog_rolling.ref = console
|
||||
logger.index_search_slowlog_rolling.additivity = false
|
||||
|
||||
appender.index_indexing_slowlog_rolling.type = RollingFile
|
||||
appender.index_indexing_slowlog_rolling.name = index_indexing_slowlog_rolling
|
||||
appender.index_indexing_slowlog_rolling.fileName = ${sys:es.logs}_index_indexing_slowlog.log
|
||||
appender.index_indexing_slowlog_rolling.layout.type = PatternLayout
|
||||
appender.index_indexing_slowlog_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %marker%.10000m%n
|
||||
appender.index_indexing_slowlog_rolling.filePattern = ${sys:es.logs}_index_indexing_slowlog-%d{yyyy-MM-dd}.log
|
||||
appender.index_indexing_slowlog_rolling.policies.type = Policies
|
||||
appender.index_indexing_slowlog_rolling.policies.time.type = TimeBasedTriggeringPolicy
|
||||
appender.index_indexing_slowlog_rolling.policies.time.interval = 1
|
||||
appender.index_indexing_slowlog_rolling.policies.time.modulate = true
|
||||
|
||||
logger.index_indexing_slowlog.name = index.indexing.slowlog.index
|
||||
logger.index_indexing_slowlog.level = trace
|
||||
logger.index_indexing_slowlog.appenderRef.index_indexing_slowlog_rolling.ref = console
|
||||
logger.index_indexing_slowlog.additivity = false
|
||||
@@ -1,132 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
pre_checks() {
|
||||
mmc=$(sysctl vm.max_map_count|sed 's/.*= //')
|
||||
if [[ $mmc -lt 262144 ]]; then
|
||||
echo "
|
||||
ERROR: As of 5.0.0 Elasticsearch requires increasing mmap counts.
|
||||
Refer to https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
|
||||
"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
discoverIpFromLink() {
|
||||
dev=$1
|
||||
mode=$2
|
||||
ip=`ipaddr show dev $dev scope global|awk '$1 == "inet" { if (!match($2,"/32")) { gsub("/.*","",$2) ; print $2 } }'`
|
||||
echo "Discovered $mode address $ip for $dev"
|
||||
OPTS="$OPTS -E $mode.host=$ip"
|
||||
}
|
||||
|
||||
setup_clustering() {
|
||||
|
||||
if [ -n "$CLUSTER" ]; then
|
||||
OPTS="$OPTS -E cluster.name=$CLUSTER"
|
||||
if [ -n "$CLUSTER_FROM" ]; then
|
||||
if [ -d /data/$CLUSTER_FROM -a ! -d /data/$CLUSTER ]; then
|
||||
echo "Performing cluster data migration from $CLUSTER_FROM to $CLUSTER"
|
||||
mv /data/$CLUSTER_FROM /data/$CLUSTER
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$NODE_NAME" ]; then
|
||||
OPTS="$OPTS -E node.name=$NODE_NAME"
|
||||
fi
|
||||
|
||||
if [ -n "$MULTICAST" ]; then
|
||||
OPTS="$OPTS -E discovery.zen.ping.multicast.enabled=$MULTICAST"
|
||||
fi
|
||||
|
||||
if [ -n "$UNICAST_HOSTS" ]; then
|
||||
OPTS="$OPTS -E discovery.zen.ping.unicast.hosts=$UNICAST_HOSTS"
|
||||
fi
|
||||
|
||||
if [ -n "$PUBLISH_AS" ]; then
|
||||
OPTS="$OPTS -E transport.publish_host=$(echo $PUBLISH_AS | awk -F: '{print $1}')"
|
||||
OPTS="$OPTS -E transport.publish_port=$(echo $PUBLISH_AS | awk -F: '{if ($2) print $2; else print 9300}')"
|
||||
fi
|
||||
|
||||
if [ -n "$MIN_MASTERS" ]; then
|
||||
OPTS="$OPTS -E discovery.zen.minimum_master_nodes=$MIN_MASTERS"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
install_plugins() {
|
||||
|
||||
if [ -n "$PLUGINS" ]; then
|
||||
for p in $(echo $PLUGINS | awk -v RS=, '{print}')
|
||||
do
|
||||
echo "Installing the plugin $p"
|
||||
$ES_HOME/bin/elasticsearch-plugin install $p
|
||||
done
|
||||
else
|
||||
mkdir -p $ES_HOME/plugins
|
||||
fi
|
||||
}
|
||||
|
||||
setup_personality() {
|
||||
|
||||
if [ -n "$TYPE" ]; then
|
||||
case $TYPE in
|
||||
MASTER)
|
||||
OPTS="$OPTS -E node.master=true -E node.data=false"
|
||||
;;
|
||||
|
||||
GATEWAY)
|
||||
OPTS="$OPTS -E node.master=false -E node.data=false"
|
||||
;;
|
||||
|
||||
DATA|NON_MASTER)
|
||||
OPTS="$OPTS -E node.master=false -E node.data=true"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown node type. Please use MASTER|GATEWAY|DATA|NON_MASTER"
|
||||
exit 1
|
||||
esac
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
pre_checks
|
||||
|
||||
if [ -f /conf/env ]; then
|
||||
. /conf/env
|
||||
fi
|
||||
|
||||
if [ ! -e /conf/elasticsearch.* ]; then
|
||||
cp $ES_HOME/config/elasticsearch.yml /conf
|
||||
fi
|
||||
|
||||
if [ ! -e /conf/log4j2.properties ]; then
|
||||
cp $ES_HOME/config/log4j2.properties /conf
|
||||
fi
|
||||
|
||||
OPTS="$OPTS \
|
||||
-E path.conf=/conf \
|
||||
-E path.data=/data \
|
||||
-E path.logs=/data \
|
||||
-E transport.tcp.port=9300 \
|
||||
-E http.port=9200"
|
||||
|
||||
discoverIpFromLink $DISCOVER_TRANSPORT_IP transport
|
||||
discoverIpFromLink $DISCOVER_HTTP_IP http
|
||||
|
||||
setup_personality
|
||||
setup_clustering
|
||||
install_plugins
|
||||
|
||||
mkdir -p /conf/scripts
|
||||
|
||||
echo "Starting Elasticsearch with the options $OPTS"
|
||||
CMD="$ES_HOME/bin/elasticsearch $OPTS"
|
||||
if [ `id -u` = 0 ]; then
|
||||
echo "Running as non-root..."
|
||||
chown -R $DEFAULT_ES_USER /data /conf
|
||||
su -c "$CMD" $DEFAULT_ES_USER
|
||||
else
|
||||
$CMD
|
||||
fi
|
||||
2
examples/.gitignore
vendored
Normal file
2
examples/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/data/
|
||||
modpacks/
|
||||
3
examples/README.md
Normal file
3
examples/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Deployment Examples
|
||||
|
||||
This directory contains various deployment examples of the [itzg/minecraft-server](https://hub.docker.com/r/itzg/minecraft-server/) Docker image.
|
||||
21
examples/docker-compose-autopause.yml
Normal file
21
examples/docker-compose-autopause.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
minecraft:
|
||||
image: itzg/minecraft-server
|
||||
ports:
|
||||
- "25565:25565"
|
||||
volumes:
|
||||
- "mc:/data"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
ENABLE_AUTOPAUSE: "TRUE"
|
||||
OVERRIDE_SERVER_PROPERTIES: "TRUE"
|
||||
MAX_TICK_TIME: "-1"
|
||||
# More aggressive settings for demo purposes
|
||||
AUTOPAUSE_TIMEOUT_INIT: "30"
|
||||
AUTOPAUSE_TIMEOUT_EST: "10"
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
mc: {}
|
||||
20
examples/docker-compose-autostop.yml
Normal file
20
examples/docker-compose-autostop.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
minecraft:
|
||||
image: itzg/minecraft-server
|
||||
ports:
|
||||
- "25565:25565"
|
||||
volumes:
|
||||
- "mc:/data"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
ENABLE_AUTOSTOP: "TRUE"
|
||||
# More aggressive settings for demo purposes
|
||||
AUTOSTOP_TIMEOUT_INIT: "30"
|
||||
AUTOSTOP_TIMEOUT_EST: "20"
|
||||
# Important not to auto-restart the server!!!
|
||||
restart: "no"
|
||||
|
||||
volumes:
|
||||
mc: {}
|
||||
29
examples/docker-compose-big.yml
Normal file
29
examples/docker-compose-big.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
minecraft:
|
||||
ports:
|
||||
- "25565:25565"
|
||||
volumes:
|
||||
- "mcbig:/data"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
MAX_MEMORY: 32G
|
||||
MAX_BUILD_HEIGHT: 256
|
||||
VIEW_DISTANCE: 15
|
||||
LEVEL_TYPE: LARGEBIOMES
|
||||
MAX_PLAYERS: 100
|
||||
CONSOLE: "false"
|
||||
image: itzg/minecraft-server
|
||||
restart: always
|
||||
rcon:
|
||||
image: itzg/rcon
|
||||
ports:
|
||||
- "4326:4326"
|
||||
- "4327:4327"
|
||||
volumes:
|
||||
- "rcon:/opt/rcon-web-admin/db"
|
||||
|
||||
volumes:
|
||||
mcbig:
|
||||
rcon:
|
||||
151
examples/docker-compose-curseforge-atm7.yaml
Normal file
151
examples/docker-compose-curseforge-atm7.yaml
Normal file
@@ -0,0 +1,151 @@
|
||||
version: '3.8'
|
||||
|
||||
####################################################################
|
||||
# CURSEFORGE #
|
||||
# #
|
||||
# Date: 20221005 #
|
||||
# #
|
||||
# Mod: All The Mods 7 0.4.32 #
|
||||
# #
|
||||
# Notes: Verify that there is no EULA file in the modpack.zip #
|
||||
# if you do not delete it the EULA flag below will be #
|
||||
# overwritten when the modpack is copied. #
|
||||
# #
|
||||
####################################################################
|
||||
services:
|
||||
|
||||
####################################################################
|
||||
# Service Name #
|
||||
# #
|
||||
# Define Service Name here. If using RCON this name will be #
|
||||
# referenced again as RWA_RCON_HOST below. #
|
||||
# #
|
||||
# Example: 'name:' or 'mc_atm6:' #
|
||||
####################################################################
|
||||
mc_atm7:
|
||||
|
||||
####################################################################
|
||||
# Image & Container Name #
|
||||
# #
|
||||
# Specify Image Name and Java Version. The 'image' will always be #
|
||||
# 'itzg/minecraft-server' however the tag added to the end is #
|
||||
# where you can specify the java version or container architecture.#
|
||||
# See readme.md for a full list. #
|
||||
# #
|
||||
# 'container_name:' This can be anything you like. This is the name#
|
||||
# that will show when you run 'docker ps' commands. #
|
||||
####################################################################
|
||||
image: itzg/minecraft-server
|
||||
container_name: mc_atm7
|
||||
|
||||
####################################################################
|
||||
# Server Ports #
|
||||
# #
|
||||
# Specify external port. #
|
||||
####################################################################
|
||||
ports:
|
||||
- 25565:25565
|
||||
|
||||
####################################################################
|
||||
# Automatic Server Restart #
|
||||
# #
|
||||
# Define a restart policy here. #
|
||||
# - 'no' = Do not restart. #
|
||||
# - 'on-failure' = Restart if container exits because an error. #
|
||||
# - 'always' = Regardless of stop reason. #
|
||||
# - 'unless-stopped' = Similar to always except if stopped. #
|
||||
####################################################################
|
||||
restart: unless-stopped
|
||||
|
||||
####################################################################
|
||||
# Volume and Folder Access #
|
||||
# #
|
||||
# This section defines what folders and volumes you want to give #
|
||||
# this container access to. It is recommended to leaves these set #
|
||||
# to the default values unless you know what you are doing. #
|
||||
# #
|
||||
# Place your mod zip file in a folder called 'modpacks' in the #
|
||||
# same directory you place this docker-compose file. #
|
||||
# #
|
||||
# Specify the data volume name or directory here as well. #
|
||||
# In this example the volume name is 'data'. When docker creates #
|
||||
# the volume it will add what ever name you give it here to the #
|
||||
# end of the container name specified above. In this example it #
|
||||
# would be named 'mc_atm6_data'. If you change this be sure to #
|
||||
# update the volume name at the bottom of this config. #
|
||||
####################################################################
|
||||
volumes:
|
||||
- ./modpacks:/modpacks:ro
|
||||
- data:/data
|
||||
|
||||
####################################################################
|
||||
# EULA #
|
||||
# #
|
||||
# Accept EULA by setting to "true" #
|
||||
####################################################################
|
||||
environment:
|
||||
EULA: "true"
|
||||
|
||||
####################################################################
|
||||
# CURSEFORGE INSTALL #
|
||||
# #
|
||||
# Sets install type to FORGE and specifys the zip folder name #
|
||||
# and location of your mod pack. #
|
||||
# #
|
||||
# TYPE: Defines the install type as CURSEFORGE #
|
||||
# #
|
||||
# CF_SERVER_MOD: Define where the modpack.zip is located. #
|
||||
# #
|
||||
# Place your mod zip file in a folder called 'modpacks' in the #
|
||||
# same directory you place this docker-compose file. #
|
||||
####################################################################
|
||||
TYPE: CURSEFORGE
|
||||
CF_SERVER_MOD: /modpacks/ATM7-0.4.32-server.zip
|
||||
|
||||
####################################################################
|
||||
# Server Memory #
|
||||
# #
|
||||
# Set Maximum amount of memory allowed for your server. #
|
||||
####################################################################
|
||||
MEMORY: "8G"
|
||||
|
||||
####################################################################
|
||||
# Logging Options #
|
||||
# #
|
||||
# Set to "true" to delete old logs #
|
||||
####################################################################
|
||||
ENABLE_ROLLING_LOGS: "true"
|
||||
|
||||
####################################################################
|
||||
# Server Timezone #
|
||||
# #
|
||||
# Specify server Timezone #
|
||||
####################################################################
|
||||
TZ: "America/New_York"
|
||||
|
||||
####################################################################
|
||||
# Minecraft Game Options #
|
||||
# #
|
||||
# List any game options you want to define here. A full list can #
|
||||
# be found on the readme.md page on github. #
|
||||
####################################################################
|
||||
OVERRIDE_SERVER_PROPERTIES: "true"
|
||||
DIFFICULTY: "easy"
|
||||
MAX_TICK_TIME: "-1"
|
||||
VIEW_DISTANCE: "6"
|
||||
ALLOW_FLIGHT: "true"
|
||||
OPS: ""
|
||||
VIEW_DISTANCE: 10
|
||||
MAX_PLAYERS: 10
|
||||
PVP: "false"
|
||||
LEVEL_TYPE: "biomesoplenty"
|
||||
MOTD: "Welcome Home"
|
||||
|
||||
####################################################################
|
||||
# Volumes #
|
||||
# #
|
||||
# Define data volume name here. You should leave this set to the #
|
||||
# default. #
|
||||
####################################################################
|
||||
volumes:
|
||||
data:
|
||||
21
examples/docker-compose-curseforge.yml
Normal file
21
examples/docker-compose-curseforge.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server:${IMAGE_TAG:-java8}
|
||||
volumes:
|
||||
- ./modpacks:/modpacks:ro
|
||||
- data:/data
|
||||
environment:
|
||||
EULA: "true"
|
||||
TYPE: CURSEFORGE
|
||||
CF_SERVER_MOD: /modpacks/SIMPLE-SERVER-FILES-0.3.20.zip
|
||||
# CF_SERVER_MOD: /modpacks/createlive3serverfiles+1.4.2.zip
|
||||
# CF_SERVER_MOD: /modpacks/Valhelsia+3-3.5.1-SERVER.zip
|
||||
# CF_SERVER_MOD: https://media.forgecdn.net/files/3012/800/SkyFactory-4_Server_4.2.2.zip
|
||||
# CF_SERVER_MOD: /modpacks/${MODPACK:-SkyFactory_4_Server_4.1.0.zip}
|
||||
ports:
|
||||
- "25565:25565"
|
||||
|
||||
volumes:
|
||||
data: {}
|
||||
15
examples/docker-compose-fabric.yml
Normal file
15
examples/docker-compose-fabric.yml
Normal 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: {}
|
||||
161
examples/docker-compose-forge-bettermcplus
Normal file
161
examples/docker-compose-forge-bettermcplus
Normal file
@@ -0,0 +1,161 @@
|
||||
version: '3.8'
|
||||
|
||||
####################################################################
|
||||
# FORGE_GENERIC_PACK #
|
||||
# #
|
||||
# Date: 20221005 #
|
||||
# #
|
||||
# Mod: Better Minecraft Plus v40 #
|
||||
# #
|
||||
# Game Version: 1.16.5 #
|
||||
# #
|
||||
# Notes: Verify that there is no EULA file in the modpack.zip #
|
||||
# if you do not delete it the EULA flag below will be #
|
||||
# overwritten when the modpack is copied. #
|
||||
# #
|
||||
####################################################################
|
||||
services:
|
||||
|
||||
####################################################################
|
||||
# Service Name #
|
||||
# #
|
||||
# Define Service Name here. If using RCON this name will be #
|
||||
# referenced again as RWA_RCON_HOST below. #
|
||||
# #
|
||||
# Example: 'name:' or 'mc_atm6:' #
|
||||
####################################################################
|
||||
mc_bmp:
|
||||
|
||||
####################################################################
|
||||
# Image & Container Name #
|
||||
# #
|
||||
# Specify Image Name and Java Version. The 'image' will always be #
|
||||
# 'itzg/minecraft-server' however the tag added to the end is #
|
||||
# where you can specify the java version or container architecture.#
|
||||
# See readme.md for a full list. #
|
||||
# #
|
||||
# 'container_name:' This can be anything you like. This is the name#
|
||||
# that will show when you run 'docker ps' commands. #
|
||||
####################################################################
|
||||
image: itzg/minecraft-server:java8
|
||||
container_name: mc_bmp
|
||||
|
||||
####################################################################
|
||||
# Server Ports #
|
||||
# #
|
||||
# Specify external port. #
|
||||
####################################################################
|
||||
ports:
|
||||
- 25565:25565
|
||||
|
||||
####################################################################
|
||||
# Automatic Server Restart #
|
||||
# #
|
||||
# Define a restart policy here. #
|
||||
# - 'no' = Do not restart. #
|
||||
# - 'on-failure' = Restart if container exits because an error. #
|
||||
# - 'always' = Regardless of stop reason. #
|
||||
# - 'unless-stopped' = Similar to always except if stopped. #
|
||||
####################################################################
|
||||
restart: unless-stopped
|
||||
|
||||
####################################################################
|
||||
# Volume and Folder Access #
|
||||
# #
|
||||
# This section defines what folders and volumes you want to give #
|
||||
# this container access to. It is recommended to leaves these set #
|
||||
# to the default values unless you know what you are doing. #
|
||||
# #
|
||||
# Place your mod zip file in a folder called 'modpacks' in the #
|
||||
# same directory you place this docker-compose file. #
|
||||
# #
|
||||
# Specify the data volume name or directory here as well. #
|
||||
# In this example the volume name is 'data'. When docker creates #
|
||||
# the volume it will add what ever name you give it here to the #
|
||||
# end of the container name specified above. In this example it #
|
||||
# would be named 'mc_atm6_data'. If you change this be sure to #
|
||||
# update the volume name at the bottom of this config. #
|
||||
####################################################################
|
||||
volumes:
|
||||
- ./modpacks:/modpacks:ro
|
||||
- data:/data
|
||||
|
||||
####################################################################
|
||||
# EULA #
|
||||
# #
|
||||
# Accept EULA by setting to "true" #
|
||||
####################################################################
|
||||
environment:
|
||||
EULA: "true"
|
||||
|
||||
####################################################################
|
||||
# FORGE INSTALL #
|
||||
# #
|
||||
# Sets install type to FORGE and specifys the zip folder name #
|
||||
# and location of your mod pack. #
|
||||
# #
|
||||
# TYPE: Defines the install type as FORGE #
|
||||
# #
|
||||
# VERSION: Defines the version of MC the modpack is based on. #
|
||||
# #
|
||||
# FORGEVERSION: Defines the version of FORGE the modpack uses. #
|
||||
# This can usually be found in the modpack.zip as #
|
||||
# installer.jar #
|
||||
# #
|
||||
# GENERIC_PACK: Define where the modpack.zip is located. #
|
||||
# #
|
||||
# Place your mod zip file in a folder called 'modpacks' in the #
|
||||
# same directory you place this docker-compose file. #
|
||||
####################################################################
|
||||
TYPE: FORGE
|
||||
VERSION: 1.16.5
|
||||
FORGEVERSION: 36.2.39
|
||||
GENERIC_PACK: /modpacks/Better+MC+Server+Pack+PLUS+1.16.5+v40+HF.zip
|
||||
|
||||
####################################################################
|
||||
# Server Memory #
|
||||
# #
|
||||
# Set Maximum amount of memory allowed for your server. #
|
||||
####################################################################
|
||||
MEMORY: "8G"
|
||||
|
||||
####################################################################
|
||||
# Logging Options #
|
||||
# #
|
||||
# Set to "true" to delete old logs #
|
||||
####################################################################
|
||||
ENABLE_ROLLING_LOGS: "true"
|
||||
|
||||
####################################################################
|
||||
# Server Timezone #
|
||||
# #
|
||||
# Specify server Timezone #
|
||||
####################################################################
|
||||
TZ: "America/New_York"
|
||||
|
||||
####################################################################
|
||||
# Minecraft Game Options #
|
||||
# #
|
||||
# List any game options you want to define here. A full list can #
|
||||
# be found on the readme.md page on github. #
|
||||
####################################################################
|
||||
OVERRIDE_SERVER_PROPERTIES: "true"
|
||||
DIFFICULTY: "easy"
|
||||
MAX_TICK_TIME: "-1"
|
||||
VIEW_DISTANCE: "6"
|
||||
ALLOW_FLIGHT: "true"
|
||||
OPS: ""
|
||||
VIEW_DISTANCE: 10
|
||||
MAX_PLAYERS: 10
|
||||
PVP: "false"
|
||||
LEVEL_TYPE: "biomesoplenty"
|
||||
MOTD: "Welcome Home"
|
||||
|
||||
####################################################################
|
||||
# Volumes #
|
||||
# #
|
||||
# Define data volume name here. You should leave this set to the #
|
||||
# default. #
|
||||
####################################################################
|
||||
volumes:
|
||||
data:
|
||||
24
examples/docker-compose-forge.yml
Normal file
24
examples/docker-compose-forge.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server
|
||||
ports:
|
||||
# expose the Minecraft server port outside of container
|
||||
- "25565:25565"
|
||||
environment:
|
||||
# REQUIRED for all types
|
||||
EULA: "TRUE"
|
||||
# Set server type (vs the default of vanilla)
|
||||
TYPE: FORGE
|
||||
DEBUG: "true"
|
||||
volumes:
|
||||
# use a named, managed volume for data volume
|
||||
- mc_forge:/data
|
||||
# attach local host directory "mods" in same directory as this compose file
|
||||
# all mods in this directory get copied into /data/mods at startup
|
||||
- ./mods:/mods:ro
|
||||
|
||||
volumes:
|
||||
# declared the named volume, but use default/local storage engine
|
||||
mc_forge: {}
|
||||
24
examples/docker-compose-ftba.yml
Normal file
24
examples/docker-compose-ftba.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
mc:
|
||||
# FTBA support is only available in non-Alpine images
|
||||
image: itzg/minecraft-server:${IMAGE_TAG:-java8-multiarch}
|
||||
ports:
|
||||
# expose the Minecraft server port outside of container
|
||||
- 25565:25565
|
||||
environment:
|
||||
# REQUIRED for all types
|
||||
EULA: "TRUE"
|
||||
# Set server type (vs the default of vanilla)
|
||||
TYPE: FTBA
|
||||
# Use Pack ID from https://ftb.neptunepowered.org/pack/ftb-presents-direwolf20-1-12/
|
||||
FTB_MODPACK_ID: "31"
|
||||
FTB_MODPACK_VERSION_ID: ""
|
||||
volumes:
|
||||
# use a named, managed volume for data volume
|
||||
- ftba:/data
|
||||
|
||||
volumes:
|
||||
# declared the named volume, but use default/local storage engine
|
||||
ftba: {}
|
||||
160
examples/docker-compose-generic-pack-tnp5.yml
Normal file
160
examples/docker-compose-generic-pack-tnp5.yml
Normal file
@@ -0,0 +1,160 @@
|
||||
version: '3.8'
|
||||
|
||||
####################################################################
|
||||
# FORGE GENERIC_PACK #
|
||||
# #
|
||||
# Date: 20220828 #
|
||||
# #
|
||||
# Mod: TNP Limitless 5 v2.19.0 #
|
||||
# #
|
||||
# Notes: Verify that there is no EULA file in the modpack.zip #
|
||||
# if you do not delete it the EULA flag below will be #
|
||||
# overwritten when the modpack is copied and the server #
|
||||
# will not start. #
|
||||
# #
|
||||
####################################################################
|
||||
services:
|
||||
|
||||
####################################################################
|
||||
# Service Name #
|
||||
# #
|
||||
# Define Service Name here. If using RCON this name will be #
|
||||
# referenced again as RWA_RCON_HOST below. #
|
||||
# #
|
||||
# Example: 'name:' or 'mc_atm6:' #
|
||||
####################################################################
|
||||
mc_tnp5:
|
||||
|
||||
####################################################################
|
||||
# Image & Container Name #
|
||||
# #
|
||||
# Specify Image Name and Java Version. The 'image' will always be #
|
||||
# 'itzg/minecraft-server' however the tag added to the end is #
|
||||
# where you can specify the java version or container architecture.#
|
||||
# See readme.md for a full list. #
|
||||
# #
|
||||
# 'container_name:' This can be anything you like. This is the name#
|
||||
# that will show when you run 'docker ps' commands. #
|
||||
####################################################################
|
||||
image: itzg/minecraft-server
|
||||
container_name: mc_tnp5
|
||||
|
||||
####################################################################
|
||||
# Server Ports #
|
||||
# #
|
||||
# Specify external port. #
|
||||
####################################################################
|
||||
ports:
|
||||
- 25565:25565
|
||||
|
||||
####################################################################
|
||||
# Automatic Server Restart #
|
||||
# #
|
||||
# Define a restart policy here. #
|
||||
# - 'no' = Do not restart. #
|
||||
# - 'on-failure' = Restart if container exits because an error. #
|
||||
# - 'always' = Regardless of stop reason. #
|
||||
# - 'unless-stopped' = Similar to always except if stopped. #
|
||||
####################################################################
|
||||
restart: unless-stopped
|
||||
|
||||
####################################################################
|
||||
# Volume and Folder Access #
|
||||
# #
|
||||
# This section defines what folders and volumes you want to give #
|
||||
# this container access to. It is recommended to leaves these set #
|
||||
# to the default values unless you know what you are doing. #
|
||||
# #
|
||||
# Place your mod zip file in a folder called 'modpacks' in the #
|
||||
# same directory you place this docker-compose file. #
|
||||
# #
|
||||
# Specify the data volume name or directory here as well. #
|
||||
# In this example the volume name is 'data'. When docker creates #
|
||||
# the volume it will add what ever name you give it here to the #
|
||||
# end of the container name specified above. In this example it #
|
||||
# would be named 'mc_atm6_data'. If you change this be sure to #
|
||||
# update the volume name at the bottom of this config. #
|
||||
####################################################################
|
||||
volumes:
|
||||
- ./modpacks:/modpacks:ro
|
||||
- data:/data
|
||||
|
||||
####################################################################
|
||||
# EULA #
|
||||
# #
|
||||
# Accept EULA by setting to "true" #
|
||||
####################################################################
|
||||
environment:
|
||||
EULA: "true"
|
||||
|
||||
####################################################################
|
||||
# FORGE INSTALL #
|
||||
# #
|
||||
# Sets install type to FORGE and specifys the zip folder name #
|
||||
# and location of your mod pack. #
|
||||
# #
|
||||
# TYPE: Defines the install type as FORGE #
|
||||
# #
|
||||
# VERSION: Defines the version of MC the modpack is based on. #
|
||||
# #
|
||||
# FORGEVERSION: Defines the version of FORGE the modpack uses. #
|
||||
# This can usually be found in the modpack.zip as #
|
||||
# installer.jar #
|
||||
# #
|
||||
# GENERIC_PACK: Define where the modpack.zip is located. #
|
||||
# #
|
||||
# Place your mod zip file in a folder called 'modpacks' in the #
|
||||
# same directory you place this docker-compose file. #
|
||||
####################################################################
|
||||
TYPE: FORGE
|
||||
VERSION: 1.18.2
|
||||
FORGEVERSION: 40.1.73
|
||||
GENERIC_PACK: /modpacks/tnp5.zip
|
||||
|
||||
####################################################################
|
||||
# Server Memory #
|
||||
# #
|
||||
# Set Maximum amount of memory allowed for your server. #
|
||||
####################################################################
|
||||
MEMORY: "8G"
|
||||
|
||||
####################################################################
|
||||
# Logging Options #
|
||||
# #
|
||||
# Set to "true" to delete old logs #
|
||||
####################################################################
|
||||
ENABLE_ROLLING_LOGS: "true"
|
||||
|
||||
####################################################################
|
||||
# Server Timezone #
|
||||
# #
|
||||
# Specify server Timezone #
|
||||
####################################################################
|
||||
TZ: "America/New_York"
|
||||
|
||||
####################################################################
|
||||
# Minecraft Game Options #
|
||||
# #
|
||||
# List any game options you want to define here. A full list can #
|
||||
# be found on the readme.md page on github. #
|
||||
####################################################################
|
||||
OVERRIDE_SERVER_PROPERTIES: "true"
|
||||
DIFFICULTY: "easy"
|
||||
MAX_TICK_TIME: "-1"
|
||||
VIEW_DISTANCE: "6"
|
||||
ALLOW_FLIGHT: "true"
|
||||
OPS: ""
|
||||
VIEW_DISTANCE: 10
|
||||
MAX_PLAYERS: 10
|
||||
PVP: "false"
|
||||
LEVEL_TYPE: "biomesoplenty"
|
||||
MOTD: "Welcome Home"
|
||||
|
||||
####################################################################
|
||||
# Volumes #
|
||||
# #
|
||||
# Define data volume name here. You should leave this set to the #
|
||||
# default. #
|
||||
####################################################################
|
||||
volumes:
|
||||
data:
|
||||
21
examples/docker-compose-generic-pack.yml
Normal file
21
examples/docker-compose-generic-pack.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server:${IMAGE_TAG:-latest}
|
||||
volumes:
|
||||
- data:/data
|
||||
- ./modpacks:/modpacks:ro
|
||||
environment:
|
||||
EULA: "true"
|
||||
TYPE: FORGE
|
||||
DEBUG: "${DEBUG:-false}"
|
||||
VERSION: ${VERSION:-1.17.1}
|
||||
FORGEVERSION: ${FORGEVERSION:-37.0.90}
|
||||
GENERIC_PACK: /modpacks/${MODPACK:-Server-Files-0.0.21.zip}
|
||||
REMOVE_OLD_MODS: "${REMOVE_OLD_MODS:-false}"
|
||||
ports:
|
||||
- "25565:25565"
|
||||
|
||||
volumes:
|
||||
data: {}
|
||||
17
examples/docker-compose-magma.yml
Normal file
17
examples/docker-compose-magma.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server:java8
|
||||
tty: true
|
||||
stdin_open: true
|
||||
ports:
|
||||
- "25565:25565"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
TYPE: MAGMA
|
||||
VERSION: 1.16.5
|
||||
volumes:
|
||||
- data:/data
|
||||
volumes:
|
||||
data: {}
|
||||
18
examples/docker-compose-modrinth.yml
Normal file
18
examples/docker-compose-modrinth.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server
|
||||
tty: true
|
||||
stdin_open: true
|
||||
ports:
|
||||
- "25565:25565"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
TYPE: FABRIC
|
||||
MODRINTH_PROJECTS: fallingtree
|
||||
volumes:
|
||||
- data:/data
|
||||
|
||||
volumes:
|
||||
data: {}
|
||||
19
examples/docker-compose-mods-file.yml
Normal file
19
examples/docker-compose-mods-file.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server
|
||||
environment:
|
||||
EULA: "true"
|
||||
TYPE: FORGE
|
||||
VERSION: 1.15.2
|
||||
MODS_FILE: /extras/mods.txt
|
||||
REMOVE_OLD_MODS: "true"
|
||||
ports:
|
||||
- 25565:25565
|
||||
volumes:
|
||||
- data:/data
|
||||
- ./mods.txt:/extras/mods.txt:ro
|
||||
|
||||
volumes:
|
||||
data:
|
||||
21
examples/docker-compose-mods-mount.yml
Normal file
21
examples/docker-compose-mods-mount.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
minecraft:
|
||||
image: itzg/minecraft-server
|
||||
volumes:
|
||||
- data:/data
|
||||
- ./mods:/mods
|
||||
ports:
|
||||
- "25565:25565"
|
||||
environment:
|
||||
EULA: "true"
|
||||
TYPE: "FORGE"
|
||||
VERSION: "1.19.2"
|
||||
DEBUG: "true"
|
||||
SETUP_ONLY: "true"
|
||||
tty: True
|
||||
stdin_open: True
|
||||
|
||||
volumes:
|
||||
data: {}
|
||||
17
examples/docker-compose-mohist.yml
Normal file
17
examples/docker-compose-mohist.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server
|
||||
ports:
|
||||
- "25565:25565"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
TYPE: MOHIST
|
||||
VERSION: 1.12.2
|
||||
DEBUG: "true"
|
||||
volumes:
|
||||
- data:/data
|
||||
|
||||
volumes:
|
||||
data: {}
|
||||
19
examples/docker-compose-paper.yml
Normal file
19
examples/docker-compose-paper.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
version: '3.8'
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server
|
||||
container_name: paper
|
||||
environment:
|
||||
EULA: "true"
|
||||
ENABLE_RCON: "true"
|
||||
TYPE: PAPER
|
||||
VIEW_DISTANCE: 10
|
||||
MEMORY: 2G
|
||||
CONSOLE: "false"
|
||||
ports:
|
||||
- 25565:25565
|
||||
volumes:
|
||||
- mc-paper:/data
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
mc-paper:
|
||||
16
examples/docker-compose-proxied.yml
Normal file
16
examples/docker-compose-proxied.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
mc:
|
||||
# build: .
|
||||
image: itzg/minecraft-server
|
||||
ports:
|
||||
- 25565:25565
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
# TYPE: SPIGOT
|
||||
# VERSION: 1.11.2
|
||||
PROXY: proxy:3128
|
||||
proxy:
|
||||
image: sameersbn/squid
|
||||
|
||||
36
examples/docker-compose-rconcmd.yml
Normal file
36
examples/docker-compose-rconcmd.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
minecraft:
|
||||
image: ${IMAGE_TO_TEST:-itzg/minecraft-server}
|
||||
ports:
|
||||
- "25565:25565"
|
||||
volumes:
|
||||
- "mc:/data"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
TYPE: FABRIC
|
||||
MODS_FORGEAPI_PROJECTIDS: 433175
|
||||
MODS_FORGEAPI_KEY: ${MODS_FORGEAPI_KEY}
|
||||
MODS_FORGEAPI_DOWNLOAD_DEPENDENCIES: "TRUE"
|
||||
REMOVE_OLD_FORGEAPI_MODS: "TRUE"
|
||||
# YAML Heredoc, be sure to use '|-' this will remove the first newline and final new line.
|
||||
# This is versus '|' that will leaving with two empty strings at top and bottom.
|
||||
RCON_CMDS_STARTUP: |-
|
||||
/gamerule doFireTick false
|
||||
/team add New
|
||||
/team add Old
|
||||
/chunky radius 1000
|
||||
/chunky start
|
||||
RCON_CMDS_ON_CONNECT: |-
|
||||
/team join New @a[team=]
|
||||
/give @a[team=New] birch_boat
|
||||
/team join Old @a[team=New]
|
||||
RCON_CMDS_FIRST_CONNECT: |-
|
||||
/chunky pause
|
||||
RCON_CMDS_LAST_DISCONNECT: |-
|
||||
/kill @e[type=minecraft:boat]
|
||||
/chunky continue
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
mc: {}
|
||||
27
examples/docker-compose-rlcraft.yml
Normal file
27
examples/docker-compose-rlcraft.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server:java8
|
||||
volumes:
|
||||
- data:/data
|
||||
- ./modpacks:/modpacks:ro
|
||||
environment:
|
||||
EULA: "true"
|
||||
TYPE: "FORGE"
|
||||
VERSION: "1.12.2"
|
||||
FORGEVERSION: "14.23.5.2860"
|
||||
OVERRIDE_SERVER_PROPERTIES: "true"
|
||||
DIFFICULTY: "hard"
|
||||
MAX_TICK_TIME: "-1"
|
||||
ALLOW_FLIGHT: "true"
|
||||
ENABLE_COMMAND_BLOCK: "true"
|
||||
VIEW_DISTANCE: "10"
|
||||
MEMORY: "4G"
|
||||
# Download from https://www.curseforge.com/minecraft/modpacks/rlcraft and place in modpacks subdir
|
||||
GENERIC_PACK: "/modpacks/RLCraft+Server+Pack+1.12.2+-+Release+v2.9.1c.zip"
|
||||
ports:
|
||||
- 25565:25565
|
||||
|
||||
volumes:
|
||||
data:
|
||||
14
examples/docker-compose-simple.yml
Normal file
14
examples/docker-compose-simple.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server
|
||||
tty: true
|
||||
stdin_open: true
|
||||
ports:
|
||||
- 25565:25565
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
volumes:
|
||||
# attach the relative directory 'data' to the container's /data path
|
||||
- ./data:/data
|
||||
20
examples/docker-compose-spiget.yml
Normal file
20
examples/docker-compose-spiget.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
mc:
|
||||
# Only using IMAGE variable to allow for local testing
|
||||
image: itzg/minecraft-server
|
||||
# image: ${IMAGE:-itzg/minecraft-server}
|
||||
ports:
|
||||
- "25565:25565"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
TYPE: SPIGOT
|
||||
# SPIGET_RESOURCES: 34315,3836
|
||||
SPIGET_RESOURCES: ""
|
||||
REMOVE_OLD_MODS: "true"
|
||||
volumes:
|
||||
- data:/data
|
||||
|
||||
volumes:
|
||||
data: {}
|
||||
34
examples/docker-compose-spongeforge.yml
Normal file
34
examples/docker-compose-spongeforge.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
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:java8
|
||||
ports:
|
||||
- "25565:25565"
|
||||
volumes:
|
||||
- "mc:/data"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
#VERSION: "1.12.2" (Ensure this is compatbile with the version of SpongeForge you are using!)
|
||||
TYPE: "FORGE"
|
||||
FORGEVERSION: "RECOMMENDED"
|
||||
#FORGEVERSION: "14.23.5.2807"
|
||||
CONSOLE: "false"
|
||||
ENABLE_RCON: "true"
|
||||
RCON_PASSWORD: "testing"
|
||||
RCON_PORT: 28016
|
||||
restart: unless-stopped
|
||||
rcon:
|
||||
image: itzg/rcon
|
||||
ports:
|
||||
- "4326:4326"
|
||||
- "4327:4327"
|
||||
volumes:
|
||||
- "rcon:/opt/rcon-web-admin/db"
|
||||
|
||||
volumes:
|
||||
mc:
|
||||
rcon:
|
||||
11
examples/docker-compose-world-download.yml
Normal file
11
examples/docker-compose-world-download.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server
|
||||
ports:
|
||||
- 25565:25565
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
VERSION: 1.7.2
|
||||
WORLD: https://www.minecraftmaps.com/survival-maps/cube-survival/download
|
||||
16
examples/docker-compose.yml
Normal file
16
examples/docker-compose.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
version: '3'
|
||||
# Other docker-compose examples in /examples
|
||||
|
||||
services:
|
||||
minecraft:
|
||||
image: itzg/minecraft-server
|
||||
ports:
|
||||
- "25565:25565"
|
||||
volumes:
|
||||
- "mc:/data"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
mc: {}
|
||||
62
examples/k8s/using-statefulset.yml
Normal file
62
examples/k8s/using-statefulset.yml
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
app: mc-example
|
||||
name: mc-example
|
||||
spec:
|
||||
replicas: 1
|
||||
serviceName: mc-example
|
||||
selector:
|
||||
matchLabels:
|
||||
app: mc-example
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mc-example
|
||||
spec:
|
||||
containers:
|
||||
- name: mc
|
||||
image: itzg/minecraft-server
|
||||
env:
|
||||
- name: EULA
|
||||
value: "TRUE"
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: data
|
||||
readinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- mc-monitor
|
||||
- status
|
||||
- --host
|
||||
- localhost
|
||||
- --port
|
||||
- "25565"
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 5
|
||||
failureThreshold: 18
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: data
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
service: mc-example
|
||||
name: mc-example
|
||||
spec:
|
||||
ports:
|
||||
- port: 25565
|
||||
targetPort: 25565
|
||||
selector:
|
||||
app: mc-example
|
||||
type: NodePort
|
||||
54
examples/k8s/vanilla-deployment.yml
Normal file
54
examples/k8s/vanilla-deployment.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mc-vanilla
|
||||
spec:
|
||||
type: NodePort
|
||||
ports:
|
||||
- port: 25565
|
||||
nodePort: 30000
|
||||
selector:
|
||||
app: mc-vanilla
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: mc-vanilla
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: mc-vanilla
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mc-vanilla
|
||||
spec:
|
||||
containers:
|
||||
- image: itzg/minecraft-server
|
||||
name: mc-vanilla
|
||||
env:
|
||||
# Use secret in real usage
|
||||
- name: EULA
|
||||
value: "true"
|
||||
ports:
|
||||
- containerPort: 25565
|
||||
name: main
|
||||
readinessProbe:
|
||||
exec:
|
||||
command: [ "/usr/local/bin/mc-monitor", "status", "--host", "localhost" ]
|
||||
# Give it i + p * f seconds to be ready, so 120 seconds
|
||||
initialDelaySeconds: 20
|
||||
periodSeconds: 5
|
||||
failureThreshold: 20
|
||||
# Monitor ongoing liveness
|
||||
livenessProbe:
|
||||
exec:
|
||||
command: ["/usr/local/bin/mc-monitor", "status", "--host", "localhost"]
|
||||
initialDelaySeconds: 120
|
||||
periodSeconds: 60
|
||||
volumeMounts:
|
||||
- name: mc-data
|
||||
mountPath: /data
|
||||
volumes:
|
||||
- name: mc-data
|
||||
emptyDir: {}
|
||||
1
examples/modpacks/.gitignore
vendored
Normal file
1
examples/modpacks/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.zip
|
||||
3
examples/modpacks/README.md
Normal file
3
examples/modpacks/README.md
Normal file
@@ -0,0 +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/3012800>.
|
||||
80
examples/mods.txt
Normal file
80
examples/mods.txt
Normal file
@@ -0,0 +1,80 @@
|
||||
https://edge.forgecdn.net/files/2965/233/Bookshelf-1.15.2-5.6.40.jar
|
||||
https://edge.forgecdn.net/files/2926/27/ProgressiveBosses-2.1.5-mc1.15.2.jar
|
||||
https://edge.forgecdn.net/files/3248/905/goblintraders-1.3.1-1.15.2.jar
|
||||
https://edge.forgecdn.net/files/3272/32/jei-1.15.2-6.0.3.16.jar
|
||||
https://edge.forgecdn.net/files/2871/647/ToastControl-1.15.2-3.0.1.jar
|
||||
https://edge.forgecdn.net/files/3101/903/Druidcraft-1.15-0.4.45.jar
|
||||
https://edge.forgecdn.net/files/2880/426/DefaultOptions_1.15.2-11.0.1.jar
|
||||
https://edge.forgecdn.net/files/2996/535/MekanismAdditions-1.15.2-9.10.9.422.jar
|
||||
https://edge.forgecdn.net/files/3147/275/blockcarpentry-1.15-0.8.2.jar
|
||||
https://edge.forgecdn.net/files/3005/715/refinedstorageaddons-0.6.3.jar
|
||||
https://edge.forgecdn.net/files/3140/146/rftoolsbase-1.15-1.1.10.jar
|
||||
https://edge.forgecdn.net/files/3236/649/cc-tweaked-1.15.2-1.95.3.jar
|
||||
https://edge.forgecdn.net/files/3048/970/light-overlay-4.7.2.jar
|
||||
https://edge.forgecdn.net/files/3015/904/randompatches-1.15.2-1.22.1.1.jar
|
||||
https://edge.forgecdn.net/files/3131/439/engineersdecor-1.15.2-1.1.4.jar
|
||||
https://edge.forgecdn.net/files/3051/255/carryon-1.15.2-1.13.0.5.jar
|
||||
https://edge.forgecdn.net/files/3175/752/EnderStorage-1.15.2-2.5.2.164-universal.jar
|
||||
https://edge.forgecdn.net/files/2997/84/Savage-and-Ravage-1.15.2-1.1.4.jar
|
||||
https://edge.forgecdn.net/files/3053/840/PackMenu-1.15.2-1.2.8.jar
|
||||
https://edge.forgecdn.net/files/3003/397/JEITweaker-1.15.2-1.0.1.3.jar
|
||||
https://edge.forgecdn.net/files/3069/489/absentbydesign-1.15.2-1.1.1.jar
|
||||
https://edge.forgecdn.net/files/2997/601/Upgrade-Aquatic-1.15.2-1.7.1.jar
|
||||
https://edge.forgecdn.net/files/2950/766/ReAuth-1.14-1.15-3.8.1.jar
|
||||
https://edge.forgecdn.net/files/3024/179/Powah-1.15.2-1.1.15.jar
|
||||
https://edge.forgecdn.net/files/3092/975/StorageDrawers-1.15.2-7.0.3.jar
|
||||
https://edge.forgecdn.net/files/2853/267/furniture-7.0.0-pre16-1.15.1.jar
|
||||
https://edge.forgecdn.net/files/2987/251/AppleSkin-mc1.15.2-forge-1.0.14.jar
|
||||
https://edge.forgecdn.net/files/2980/323/industrial-foregoing-1.15.2-2.3.3-e356e61.jar
|
||||
https://edge.forgecdn.net/files/3024/178/Lollipop-1.15.2-1.0.16.jar
|
||||
https://edge.forgecdn.net/files/3210/106/tablechair-1.4.jar
|
||||
https://edge.forgecdn.net/files/3047/358/xercapaint-1.15.2-3.3.jar
|
||||
https://edge.forgecdn.net/files/2873/657/BonsaiTrees-2.1.2.6.jar
|
||||
https://edge.forgecdn.net/files/2938/583/config-2-3.0.jar
|
||||
https://edge.forgecdn.net/files/2991/235/Waystones_1.15.2-6.0.2.jar
|
||||
https://edge.forgecdn.net/files/2957/23/OpenLoader-1.15.2-4.0.5.jar
|
||||
https://edge.forgecdn.net/files/3275/718/XaerosWorldMap_1.13.2_Forge_1.15.2.jar
|
||||
https://edge.forgecdn.net/files/2876/104/AI-Improvements-1.15.2-0.3.0.jar
|
||||
https://edge.forgecdn.net/files/3005/515/mysticallib-1.15.2-2.0.1.jar
|
||||
https://edge.forgecdn.net/files/3008/867/WAWLA-1.15.2-3.0.4.jar
|
||||
https://edge.forgecdn.net/files/2964/474/WailaHarvestability-mc1.15.2-1.1.12.jar
|
||||
https://edge.forgecdn.net/files/3103/508/Kiwi-1.15.2-2.8.5.jar
|
||||
https://edge.forgecdn.net/files/3128/662/Atum-1.15.2-2.1.12.jar
|
||||
https://edge.forgecdn.net/files/2988/910/Buzzier-Bees-1.15.2-1.5.2.jar
|
||||
https://edge.forgecdn.net/files/3030/627/u_team_core-1.15.2-3.0.2.169.jar
|
||||
https://edge.forgecdn.net/files/3003/984/SilentLib-1.15.2-4.6.6+59.jar
|
||||
https://edge.forgecdn.net/files/2968/353/refinedpipes-0.4.2.jar
|
||||
https://edge.forgecdn.net/files/3140/149/rftoolsbuilder-1.15-2.1.16.jar
|
||||
https://edge.forgecdn.net/files/3067/203/mightyarchitect-mc1.15.2_v0.5.jar
|
||||
https://edge.forgecdn.net/files/2980/153/EquipmentTooltips-1.15.2-1.4.3+14.jar
|
||||
https://edge.forgecdn.net/files/3103/510/FruitTrees-1.15.2-1.7.0.jar
|
||||
https://edge.forgecdn.net/files/2989/38/Atmospheric-1.15.2-1.4.1.jar
|
||||
https://edge.forgecdn.net/files/3096/836/rftoolscontrol-1.15-3.0.9.jar
|
||||
https://edge.forgecdn.net/files/2989/662/Enhanced-Mushrooms-1.15.2-v1.2.2.jar
|
||||
https://edge.forgecdn.net/files/3227/891/SimpleStorageNetwork-1.15.2-1.0.2.jar
|
||||
https://edge.forgecdn.net/files/3217/290/minecolonies-0.13.645-RELEASE-universal.jar
|
||||
https://edge.forgecdn.net/files/2935/384/SnowRealMagic-1.15.2-1.7.5.jar
|
||||
https://edge.forgecdn.net/files/2988/584/aiotbotania-1.15.2-1.2.3.jar
|
||||
https://edge.forgecdn.net/files/3255/408/mowziesmobs-1.5.15.jar
|
||||
https://edge.forgecdn.net/files/3062/510/HealthOverlay-1.15.2-1.0.2.jar
|
||||
https://edge.forgecdn.net/files/3023/121/neoncraft-1.1.jar
|
||||
https://edge.forgecdn.net/files/2997/617/Swamp-Expansion-1.15.2-1.7.3.jar
|
||||
https://edge.forgecdn.net/files/2980/252/titanium-1.15.2-2.4.2.jar
|
||||
https://edge.forgecdn.net/files/3152/946/rftoolsutility-1.15-2.1.20.jar
|
||||
https://edge.forgecdn.net/files/3083/277/swingthroughgrass-1.15.2-1.4.1.jar
|
||||
https://edge.forgecdn.net/files/3138/530/SilentGear-1.15.2-1.11.4+187.jar
|
||||
https://edge.forgecdn.net/files/3105/429/DarkUtilities-1.15.2-3.1.9.jar
|
||||
https://edge.forgecdn.net/files/3099/23/ImmersiveEngineering-1.15.2-4.1.1-125.jar
|
||||
https://edge.forgecdn.net/files/2856/529/FastFurnace-1.15.1-3.0.0.jar
|
||||
https://edge.forgecdn.net/files/2988/999/BiomesOPlenty-1.15.2-10.0.0.366-universal.jar
|
||||
https://edge.forgecdn.net/files/2989/95/The-Endergetic-Expansion-1.15.2-v1.3.2.jar
|
||||
https://edge.forgecdn.net/files/2993/960/FluxNetworks-1.15.2-5.0.3-4.jar
|
||||
https://edge.forgecdn.net/files/3028/611/ServerTabInfo-1.15.2-1.2.8.jar
|
||||
https://edge.forgecdn.net/files/3134/277/fairylights-3.0.15-1.15.2.jar
|
||||
https://edge.forgecdn.net/files/3048/54/useful_backpacks-1.15.2-1.10.3.77.jar
|
||||
https://edge.forgecdn.net/files/3273/515/mcw-trapdoors-1.0.2-mc1.15.2.jar
|
||||
https://edge.forgecdn.net/files/2986/639/CraftingTweaks_1.15.2-11.0.1.jar
|
||||
https://edge.forgecdn.net/files/3261/454/create-mc1.15.2_v0.3.1a.jar
|
||||
https://edge.forgecdn.net/files/3211/10/supermartijn642configlib-1.0.5-mc1.15.jar
|
||||
https://edge.forgecdn.net/files/2995/786/TerraForged-1.15.2-0.0.15.jar
|
||||
https://edge.forgecdn.net/files/2892/562/leavesdecayonotherleaves-1.1.jar
|
||||
5
examples/paper-build-plugins/Dockerfile
Normal file
5
examples/paper-build-plugins/Dockerfile
Normal file
@@ -0,0 +1,5 @@
|
||||
FROM itzg/minecraft-server
|
||||
|
||||
ENV TYPE=PAPER
|
||||
|
||||
COPY plugins/*.jar /plugins/
|
||||
11
examples/paper-build-plugins/docker-compose.yml
Normal file
11
examples/paper-build-plugins/docker-compose.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
mc:
|
||||
build: .
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
ports:
|
||||
- 25565:25565
|
||||
stdin_open: true
|
||||
tty: true
|
||||
1
examples/paper-build-plugins/plugins/.gitignore
vendored
Normal file
1
examples/paper-build-plugins/plugins/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.jar
|
||||
1
examples/paper-build-plugins/plugins/README.md
Normal file
1
examples/paper-build-plugins/plugins/README.md
Normal file
@@ -0,0 +1 @@
|
||||
Download Bukkit/Spigot plugin jars, such as [WorldEdit](https://dev.bukkit.org/projects/worldedit/files) and place them here. At image build time the `COPY` step will place those jars in `/plugins`. At container startup, the contents of `/plugins` are sync'ed into `/data/plugins` for use with Bukkit/Spigot/Paper server types.
|
||||
21
examples/valhelsia2/docker-compose.yml
Normal file
21
examples/valhelsia2/docker-compose.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server:java8-multiarch
|
||||
volumes:
|
||||
- data:/data
|
||||
- ./modpacks:/modpacks:ro
|
||||
environment:
|
||||
EULA: "true"
|
||||
TYPE: FORGE
|
||||
VERSION: "1.15.2"
|
||||
GENERIC_PACK: /modpacks/Valhelsia_2-2.3.4-SERVER.zip
|
||||
MEMORY: "2G"
|
||||
ports:
|
||||
- "25565:25565"
|
||||
healthcheck:
|
||||
test: NONE
|
||||
|
||||
volumes:
|
||||
data: {}
|
||||
27
examples/vanilla-tweaks/docker-compose.yml
Normal file
27
examples/vanilla-tweaks/docker-compose.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
version: "3.3"
|
||||
|
||||
services:
|
||||
vanillatweaks_file:
|
||||
restart: "no"
|
||||
image: itzg/minecraft-server
|
||||
ports:
|
||||
- "25565:25565/tcp"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
VERSION: ${MINECRAFT_VERSION:-LATEST}
|
||||
VANILLATWEAKS_FILE: /config/vanillatweaks-datapacks.json
|
||||
REMOVE_OLD_VANILLATWEAKS: "TRUE"
|
||||
volumes:
|
||||
- data:/data
|
||||
- ./vanillatweaks-datapacks.json:/config/vanillatweaks-datapacks.json:ro
|
||||
vanillatweaks_sharecode:
|
||||
# port is set to 25566 to not conflict with vanillatweaks_file example
|
||||
ports:
|
||||
- "25566:25565/tcp"
|
||||
restart: "no"
|
||||
image: itzg/minecraft-server
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
VERSION: ${MINECRAFT_VERSION:-LATEST}
|
||||
VANILLATWEAKS_SHARECODE: MGr52E
|
||||
REMOVE_OLD_VANILLATWEAKS: "TRUE"
|
||||
15
examples/vanilla-tweaks/vanillatweaks-datapacks.json
Normal file
15
examples/vanilla-tweaks/vanillatweaks-datapacks.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"version": "1.18",
|
||||
"packs": {
|
||||
"survival": [
|
||||
"graves",
|
||||
"multiplayer sleep",
|
||||
"afk display",
|
||||
"armor statues",
|
||||
"unlock all recipes",
|
||||
"fast leaf decay",
|
||||
"coordinates hud"
|
||||
],
|
||||
"items": ["armored elytra"]
|
||||
}
|
||||
}
|
||||
135
files/auto/autopause-daemon.sh
Normal file
135
files/auto/autopause-daemon.sh
Normal file
@@ -0,0 +1,135 @@
|
||||
#!/bin/bash
|
||||
|
||||
. /auto/autopause-fcns.sh
|
||||
|
||||
# shellcheck source=../../scripts/start-utils
|
||||
. "${SCRIPTS:-/}start-utils"
|
||||
if isTrue "${DEBUG_AUTOPAUSE}"; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
autopause_error_loop() {
|
||||
logAutopause "Available interfaces within the docker container:"
|
||||
INTERFACES=$(echo /sys/class/net/*)
|
||||
INTERFACES=${INTERFACES//\/sys\/class\/net\//}
|
||||
logAutopause " $INTERFACES"
|
||||
logAutopause "Please set the environment variable AUTOPAUSE_KNOCK_INTERFACE to the interface that handles incoming connections."
|
||||
logAutopause "If unsure which interface to choose, run the ifconfig command in the container."
|
||||
logAutopause "Autopause failed to initialize. This log entry will be printed every 30 minutes."
|
||||
while :
|
||||
do
|
||||
sleep 1800
|
||||
logAutopause "Autopause failed to initialize."
|
||||
done
|
||||
}
|
||||
|
||||
# wait for java process to be started
|
||||
while :
|
||||
do
|
||||
if java_process_exists ; then
|
||||
break
|
||||
fi
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
# check for interface existence
|
||||
if [[ -z "$AUTOPAUSE_KNOCK_INTERFACE" ]] ; then
|
||||
logAutopause "AUTOPAUSE_KNOCK_INTERFACE variable must not be empty!"
|
||||
autopause_error_loop
|
||||
fi
|
||||
if ! [[ -d "/sys/class/net/$AUTOPAUSE_KNOCK_INTERFACE" ]] ; then
|
||||
logAutopause "Selected interface \"$AUTOPAUSE_KNOCK_INTERFACE\" does not exist!"
|
||||
autopause_error_loop
|
||||
fi
|
||||
|
||||
knockdArgs=(-c /tmp/knockd-config.cfg -d -i "$AUTOPAUSE_KNOCK_INTERFACE")
|
||||
if isTrue "${DEBUG_AUTOPAUSE}"; then
|
||||
knockdArgs+=(-D)
|
||||
fi
|
||||
|
||||
sudo /usr/sbin/knockd "${knockdArgs[@]}"
|
||||
if [ $? -ne 0 ] ; then
|
||||
logAutopause "Failed to start knockd daemon."
|
||||
logAutopause "Probable cause: Unable to attach to interface \"$AUTOPAUSE_KNOCK_INTERFACE\"."
|
||||
autopause_error_loop
|
||||
fi
|
||||
|
||||
STATE=INIT
|
||||
|
||||
while :
|
||||
do
|
||||
isTrue "${DEBUG_AUTOPAUSE}" && log "DEBUG: autopause state = $STATE"
|
||||
case X$STATE in
|
||||
XINIT)
|
||||
# Server startup
|
||||
if mc_server_listening ; then
|
||||
TIME_THRESH=$(($(current_uptime)+$AUTOPAUSE_TIMEOUT_INIT))
|
||||
logAutopause "MC Server listening for connections - pausing in $AUTOPAUSE_TIMEOUT_INIT seconds"
|
||||
STATE=K
|
||||
fi
|
||||
;;
|
||||
XK)
|
||||
# Knocked
|
||||
if java_clients_connected ; then
|
||||
logAutopause "Client connected - waiting for disconnect"
|
||||
STATE=E
|
||||
else
|
||||
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
||||
logAutopause "No client connected since startup / knocked - pausing"
|
||||
/auto/pause.sh
|
||||
STATE=S
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
XE)
|
||||
# Established
|
||||
if ! java_clients_connected ; then
|
||||
TIME_THRESH=$(($(current_uptime)+$AUTOPAUSE_TIMEOUT_EST))
|
||||
logAutopause "All clients disconnected - pausing in $AUTOPAUSE_TIMEOUT_EST seconds"
|
||||
STATE=I
|
||||
fi
|
||||
;;
|
||||
XI)
|
||||
# Idle
|
||||
if java_clients_connected ; then
|
||||
logAutopause "Client reconnected - waiting for disconnect"
|
||||
STATE=E
|
||||
else
|
||||
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
||||
logAutopause "No client reconnected - pausing"
|
||||
/auto/pause.sh
|
||||
STATE=S
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
XS)
|
||||
# Stopped
|
||||
if rcon_client_exists ; then
|
||||
/auto/resume.sh
|
||||
fi
|
||||
if java_running ; then
|
||||
if java_clients_connected ; then
|
||||
logAutopause "Client connected - waiting for disconnect"
|
||||
STATE=E
|
||||
else
|
||||
TIME_THRESH=$(($(current_uptime)+$AUTOPAUSE_TIMEOUT_KN))
|
||||
from=unknown
|
||||
if [ -e /var/log/knocked-source ]; then
|
||||
from=$(cat /var/log/knocked-source)
|
||||
fi
|
||||
logAutopause "Server was knocked from $from - waiting for clients or timeout"
|
||||
STATE=K
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
logAutopause "Error: invalid state: $STATE"
|
||||
;;
|
||||
esac
|
||||
if [[ "$STATE" == "S" ]] ; then
|
||||
# before rcon times out
|
||||
sleep 5
|
||||
else
|
||||
sleep "$AUTOPAUSE_PERIOD"
|
||||
fi
|
||||
done
|
||||
35
files/auto/autopause-fcns.sh
Normal file
35
files/auto/autopause-fcns.sh
Normal file
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
|
||||
current_uptime() {
|
||||
awk '{print $1}' /proc/uptime | cut -d . -f 1
|
||||
}
|
||||
|
||||
java_running() {
|
||||
[[ $( ps -ax -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^S.*$ ]]
|
||||
}
|
||||
|
||||
java_process_exists() {
|
||||
[[ -n "$(ps -ax -o comm | grep 'java')" ]]
|
||||
}
|
||||
|
||||
rcon_client_exists() {
|
||||
[[ -n "$(ps -ax -o comm | grep 'rcon-cli')" ]]
|
||||
}
|
||||
|
||||
mc_server_listening() {
|
||||
mc-monitor status --host localhost --port "$SERVER_PORT" --timeout 10s >& /dev/null
|
||||
}
|
||||
|
||||
java_clients_connections() {
|
||||
local connections
|
||||
if java_running ; then
|
||||
connections=$(mc-monitor status --host localhost --port "$SERVER_PORT" --show-player-count)
|
||||
else
|
||||
connections=0
|
||||
fi
|
||||
echo $connections
|
||||
}
|
||||
|
||||
java_clients_connected() {
|
||||
(( $(java_clients_connections) > 0 ))
|
||||
}
|
||||
74
files/auto/autostop-daemon.sh
Normal file
74
files/auto/autostop-daemon.sh
Normal file
@@ -0,0 +1,74 @@
|
||||
#!/bin/bash
|
||||
|
||||
# needed for the clients connected function residing in autopause
|
||||
. /auto/autopause-fcns.sh
|
||||
|
||||
# shellcheck source=../../scripts/start-utils
|
||||
. "${SCRIPTS:-/}start-utils"
|
||||
if isTrue "${DEBUG_AUTOSTOP}"; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
# wait for java process to be started
|
||||
while :
|
||||
do
|
||||
if java_process_exists ; then
|
||||
break
|
||||
fi
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
STATE=INIT
|
||||
|
||||
while :
|
||||
do
|
||||
isTrue "${DEBUG_AUTOSTOP}" && log "DEBUG: autostop state = $STATE"
|
||||
case X$STATE in
|
||||
XINIT)
|
||||
# Server startup
|
||||
if mc_server_listening ; then
|
||||
TIME_THRESH=$(($(current_uptime)+AUTOSTOP_TIMEOUT_INIT))
|
||||
logAutostop "MC Server listening for connections - stopping in $AUTOSTOP_TIMEOUT_INIT seconds"
|
||||
STATE=II
|
||||
fi
|
||||
;;
|
||||
XII)
|
||||
# Initial idle
|
||||
if java_clients_connected ; then
|
||||
logAutostop "Client connected - waiting for disconnect"
|
||||
STATE=E
|
||||
else
|
||||
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
||||
logAutostop "No client connected since startup - stopping server"
|
||||
/auto/stop.sh
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
XE)
|
||||
# Established
|
||||
if ! java_clients_connected ; then
|
||||
TIME_THRESH=$(($(current_uptime)+$AUTOSTOP_TIMEOUT_EST))
|
||||
logAutostop "All clients disconnected - stopping in $AUTOSTOP_TIMEOUT_EST seconds"
|
||||
STATE=I
|
||||
fi
|
||||
;;
|
||||
XI)
|
||||
# Idle
|
||||
if java_clients_connected ; then
|
||||
logAutostop "Client reconnected - waiting for disconnect"
|
||||
STATE=E
|
||||
else
|
||||
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
||||
logAutostop "No client reconnected - stopping"
|
||||
/auto/stop.sh
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
logAutostop "Error: invalid state: $STATE"
|
||||
;;
|
||||
esac
|
||||
sleep $AUTOSTOP_PERIOD
|
||||
done
|
||||
15
files/auto/knockd-config.cfg
Normal file
15
files/auto/knockd-config.cfg
Normal file
@@ -0,0 +1,15 @@
|
||||
[options]
|
||||
logfile = /dev/null
|
||||
[unpauseMCServer-server]
|
||||
sequence = 25565
|
||||
seq_timeout = 1
|
||||
command = /auto/resume.sh %IP%
|
||||
tcpflags = syn
|
||||
[unpauseMCServer-rcon]
|
||||
sequence = 25575
|
||||
seq_timeout = 1
|
||||
command = /auto/resume.sh %IP%
|
||||
tcpflags = syn
|
||||
[unpauseMCServer-bedrock]
|
||||
sequence = 19132:udp
|
||||
command = /auto/resume.sh %IP%
|
||||
24
files/auto/pause.sh
Normal file
24
files/auto/pause.sh
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
. /start-utils
|
||||
if isTrue "${DEBUG_AUTOPAUSE}"; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
if [[ $( ps -ax -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^S.*$ ]] ; then
|
||||
# save world
|
||||
rcon-cli save-all >/dev/null
|
||||
|
||||
# wait until mc-monitor is no longer connected to the server
|
||||
while :
|
||||
do
|
||||
if [[ -z "$(netstat -nt | grep "127.0.0.1:$SERVER_PORT" | grep 'ESTABLISHED')" ]]; then
|
||||
break
|
||||
fi
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
# finally pause the process
|
||||
logAutopauseAction "Pausing Java process"
|
||||
pkill -STOP java
|
||||
fi
|
||||
12
files/auto/resume.sh
Normal file
12
files/auto/resume.sh
Normal file
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
. /start-utils
|
||||
if isTrue "${DEBUG_AUTOPAUSE}"; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
if [[ $( ps -ax -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^T.*$ ]] ; then
|
||||
logAutopauseAction "Knocked from $1, resuming Java process"
|
||||
echo "$1" > /var/log/knocked-source
|
||||
pkill -CONT java
|
||||
fi
|
||||
13
files/auto/stop.sh
Normal file
13
files/auto/stop.sh
Normal file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
. /start-utils
|
||||
if isTrue "${DEBUG_AUTOSTOP}"; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
logAutostopAction "Stopping Java process"
|
||||
if isTrue "${AUTOSTOP_PKILL_USE_SUDO:-false}"; then
|
||||
sudo pkill -f --signal SIGTERM mc-server-runner
|
||||
else
|
||||
pkill -f --signal SIGTERM mc-server-runner
|
||||
fi
|
||||
37
files/log4j2.xml
Normal file
37
files/log4j2.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration status="WARN" packages="com.mojang.util">
|
||||
<Appenders>
|
||||
<Console name="SysOut" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" />
|
||||
</Console>
|
||||
<Queue name="TerminalConsole">
|
||||
<PatternLayout pattern="[%d{HH:mm:ss} %level]: %msg%n" />
|
||||
</Queue>
|
||||
<RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">
|
||||
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" />
|
||||
<Policies>
|
||||
<!-- Based on filePattern resolution, so daily -->
|
||||
<TimeBasedTriggeringPolicy />
|
||||
<SizeBasedTriggeringPolicy size="100 MB" />
|
||||
<OnStartupTriggeringPolicy />
|
||||
</Policies>
|
||||
<DefaultRolloverStrategy>
|
||||
<Delete basePath="logs">
|
||||
<IfFileName glob="*.log.gz" />
|
||||
<IfLastModified age="7d" />
|
||||
<IfAccumulatedFileCount exceeds="20"/>
|
||||
</Delete>
|
||||
</DefaultRolloverStrategy>
|
||||
</RollingRandomAccessFile>
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<Root level="info">
|
||||
<filters>
|
||||
<MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL" />
|
||||
</filters>
|
||||
<AppenderRef ref="SysOut"/>
|
||||
<AppenderRef ref="File"/>
|
||||
<AppenderRef ref="TerminalConsole"/>
|
||||
</Root>
|
||||
</Loggers>
|
||||
</Configuration>
|
||||
@@ -22,6 +22,7 @@ snooper-enabled=true
|
||||
texture-pack=
|
||||
online-mode=true
|
||||
resource-pack=
|
||||
resource-pack-sha1=
|
||||
pvp=true
|
||||
difficulty=1
|
||||
enable-command-block=true
|
||||
@@ -36,3 +37,15 @@ motd=A Minecraft Server powered by Docker
|
||||
generator-settings=
|
||||
rcon.password=
|
||||
max-world-size=29999984
|
||||
broadcast-console-to-ops=true
|
||||
broadcast-rcon-to-ops=true
|
||||
enable-jmx-monitoring=false
|
||||
sync-chunk-writes=true
|
||||
enable-status=true
|
||||
entity-broadcast-range-percentage=100
|
||||
function-permission-level=2
|
||||
network-compression-threshold=256
|
||||
op-permission-level=4
|
||||
prevent-proxy-connections=false
|
||||
use-native-transport=true
|
||||
enforce-whitelist=false
|
||||
2
files/sudoers-mc
Normal file
2
files/sudoers-mc
Normal file
@@ -0,0 +1,2 @@
|
||||
minecraft ALL=(ALL) NOPASSWD:/usr/bin/pkill
|
||||
minecraft ALL=(ALL) NOPASSWD:/usr/sbin/knockd
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user