add files
This commit is contained in:
parent
d34e2a4b03
commit
5cdf14a9d4
50 changed files with 2093 additions and 0 deletions
19
.editorconfig
Normal file
19
.editorconfig
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# editorconfig.org
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
indent_style = tab
|
||||||
|
indent_size = 4
|
||||||
|
tab_width = 4
|
||||||
|
end_of_line = lf
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
[*.yml]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
tab_width = 2
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
.DS_Store
|
||||||
|
.idea
|
21
LICENSE.md
Normal file
21
LICENSE.md
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 Matthew Penner
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
50
games/rust/Dockerfile
Normal file
50
games/rust/Dockerfile
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Pterodactyl
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH debian:bullseye-slim
|
||||||
|
|
||||||
|
LABEL author="Isaac A." maintainer="isaac@isaacs.site"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
RUN dpkg --add-architecture i386 \
|
||||||
|
&& apt update \
|
||||||
|
&& apt upgrade -y \
|
||||||
|
&& apt install -y lib32gcc-s1 lib32stdc++6 unzip curl iproute2 tzdata libgdiplus libsdl2-2.0-0:i386 \
|
||||||
|
&& curl -sL https://deb.nodesource.com/setup_14.x | bash - \
|
||||||
|
&& apt install -y nodejs \
|
||||||
|
&& mkdir /node_modules \
|
||||||
|
&& npm install --prefix / ws \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./entrypoint.sh /entrypoint.sh
|
||||||
|
COPY ./wrapper.js /wrapper.js
|
||||||
|
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
43
games/rust/entrypoint.sh
Normal file
43
games/rust/entrypoint.sh
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#!/bin/bash
|
||||||
|
cd /home/container
|
||||||
|
|
||||||
|
# Make internal Docker IP address available to processes.
|
||||||
|
export INTERNAL_IP=`ip route get 1 | awk '{print $(NF-2);exit}'`
|
||||||
|
|
||||||
|
|
||||||
|
## if auto_update is not set or to 1 update
|
||||||
|
if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
|
||||||
|
./steamcmd/steamcmd.sh +force_install_dir /home/container +login anonymous +app_update 258550 +quit
|
||||||
|
else
|
||||||
|
echo -e "Not updating game server as auto update was set to 0. Starting Server"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Replace Startup Variables
|
||||||
|
MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')`
|
||||||
|
echo ":/home/container$ ${MODIFIED_STARTUP}"
|
||||||
|
|
||||||
|
if [[ "${FRAMEWORK}" == "carbon" ]]; then
|
||||||
|
# Carbon: https://github.com/CarbonCommunity/Carbon.Core
|
||||||
|
echo "Updating Carbon..."
|
||||||
|
curl -sSL "https://github.com/CarbonCommunity/Carbon.Core/releases/download/production_build/Carbon.Linux.Release.tar.gz" | tar zx
|
||||||
|
echo "Done updating Carbon!"
|
||||||
|
|
||||||
|
export DOORSTOP_ENABLED=1
|
||||||
|
export DOORSTOP_TARGET_ASSEMBLY="$(pwd)/carbon/managed/Carbon.Preloader.dll"
|
||||||
|
MODIFIED_STARTUP="LD_PRELOAD=$(pwd)/libdoorstop.so ${MODIFIED_STARTUP}"
|
||||||
|
|
||||||
|
elif [[ "$OXIDE" == "1" ]] || [[ "${FRAMEWORK}" == "oxide" ]]; then
|
||||||
|
# Oxide: https://github.com/OxideMod/Oxide.Rust
|
||||||
|
echo "Updating uMod..."
|
||||||
|
curl -sSL "https://github.com/OxideMod/Oxide.Rust/releases/latest/download/Oxide.Rust-linux.zip" > umod.zip
|
||||||
|
unzip -o -q umod.zip
|
||||||
|
rm umod.zip
|
||||||
|
echo "Done updating uMod!"
|
||||||
|
# else Vanilla, do nothing
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fix for Rust not starting
|
||||||
|
export LD_LIBRARY_PATH=$(pwd)/RustDedicated_Data/Plugins/x86_64:$(pwd)
|
||||||
|
|
||||||
|
# Run the Server
|
||||||
|
node /wrapper.js "${MODIFIED_STARTUP}"
|
140
games/rust/wrapper.js
Normal file
140
games/rust/wrapper.js
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
var startupCmd = "";
|
||||||
|
const fs = require("fs");
|
||||||
|
fs.writeFile("latest.log", "", (err) => {
|
||||||
|
if (err) console.log("Callback error in appendFile:" + err);
|
||||||
|
});
|
||||||
|
|
||||||
|
var args = process.argv.splice(process.execArgv.length + 2);
|
||||||
|
for (var i = 0; i < args.length; i++) {
|
||||||
|
if (i === args.length - 1) {
|
||||||
|
startupCmd += args[i];
|
||||||
|
} else {
|
||||||
|
startupCmd += args[i] + " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (startupCmd.length < 1) {
|
||||||
|
console.log("Error: Please specify a startup command.");
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
const seenPercentage = {};
|
||||||
|
|
||||||
|
function filter(data) {
|
||||||
|
const str = data.toString();
|
||||||
|
if (str.startsWith("Loading Prefab Bundle ")) { // Rust seems to spam the same percentage, so filter out any duplicates.
|
||||||
|
const percentage = str.substr("Loading Prefab Bundle ".length);
|
||||||
|
if (seenPercentage[percentage]) return;
|
||||||
|
|
||||||
|
seenPercentage[percentage] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
var exec = require("child_process").exec;
|
||||||
|
console.log("Starting Rust...");
|
||||||
|
|
||||||
|
var exited = false;
|
||||||
|
const gameProcess = exec(startupCmd);
|
||||||
|
gameProcess.stdout.on('data', filter);
|
||||||
|
gameProcess.stderr.on('data', filter);
|
||||||
|
gameProcess.on('exit', function (code, signal) {
|
||||||
|
exited = true;
|
||||||
|
|
||||||
|
if (code) {
|
||||||
|
console.log("Main game process exited with code " + code);
|
||||||
|
// process.exit(code);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function initialListener(data) {
|
||||||
|
const command = data.toString().trim();
|
||||||
|
if (command === 'quit') {
|
||||||
|
gameProcess.kill('SIGTERM');
|
||||||
|
} else {
|
||||||
|
console.log('Unable to run "' + command + '" due to RCON not being connected yet.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
process.stdin.resume();
|
||||||
|
process.stdin.setEncoding("utf8");
|
||||||
|
process.stdin.on('data', initialListener);
|
||||||
|
|
||||||
|
process.on('exit', function (code) {
|
||||||
|
if (exited) return;
|
||||||
|
|
||||||
|
console.log("Received request to stop the process, stopping the game...");
|
||||||
|
gameProcess.kill('SIGTERM');
|
||||||
|
});
|
||||||
|
|
||||||
|
var waiting = true;
|
||||||
|
var poll = function () {
|
||||||
|
function createPacket(command) {
|
||||||
|
var packet = {
|
||||||
|
Identifier: -1,
|
||||||
|
Message: command,
|
||||||
|
Name: "WebRcon"
|
||||||
|
};
|
||||||
|
return JSON.stringify(packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
var serverHostname = process.env.RCON_IP ? process.env.RCON_IP : "localhost";
|
||||||
|
var serverPort = process.env.RCON_PORT;
|
||||||
|
var serverPassword = process.env.RCON_PASS;
|
||||||
|
var WebSocket = require("ws");
|
||||||
|
var ws = new WebSocket("ws://" + serverHostname + ":" + serverPort + "/" + serverPassword);
|
||||||
|
|
||||||
|
ws.on("open", function open() {
|
||||||
|
console.log("Connected to RCON. Generating the map now. Please wait until the server status switches to \"Running\".");
|
||||||
|
waiting = false;
|
||||||
|
|
||||||
|
// Hack to fix broken console output
|
||||||
|
ws.send(createPacket('status'));
|
||||||
|
|
||||||
|
process.stdin.removeListener('data', initialListener);
|
||||||
|
gameProcess.stdout.removeListener('data', filter);
|
||||||
|
gameProcess.stderr.removeListener('data', filter);
|
||||||
|
process.stdin.on('data', function (text) {
|
||||||
|
ws.send(createPacket(text));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
ws.on("message", function (data, flags) {
|
||||||
|
try {
|
||||||
|
var json = JSON.parse(data);
|
||||||
|
if (json !== undefined) {
|
||||||
|
if (json.Message !== undefined && json.Message.length > 0) {
|
||||||
|
console.log(json.Message);
|
||||||
|
const fs = require("fs");
|
||||||
|
fs.appendFile("latest.log", "\n" + json.Message, (err) => {
|
||||||
|
if (err) console.log("Callback error in appendFile:" + err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log("Error: Invalid JSON received");
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
if (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
ws.on("error", function (err) {
|
||||||
|
waiting = true;
|
||||||
|
console.log("Waiting for RCON to come up...");
|
||||||
|
setTimeout(poll, 5000);
|
||||||
|
});
|
||||||
|
|
||||||
|
ws.on("close", function () {
|
||||||
|
if (!waiting) {
|
||||||
|
console.log("Connection to server closed.");
|
||||||
|
|
||||||
|
exited = true;
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
poll();
|
43
games/source/Dockerfile
Normal file
43
games/source/Dockerfile
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH debian:stable-slim
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
RUN dpkg --add-architecture i386 \
|
||||||
|
&& apt update \
|
||||||
|
&& apt upgrade -y \
|
||||||
|
&& apt install -y tar curl gcc g++ lib32gcc-s1 libgcc1 libcurl4-gnutls-dev:i386 libssl3:i386 libcurl4:i386 lib32tinfo6 libtinfo6:i386 lib32z1 lib32stdc++6 libncurses5:i386 libcurl3-gnutls:i386 libsdl2-2.0-0:i386 iproute2 gdb libsdl1.2debian libfontconfig1 telnet net-tools netcat-traditional tzdata \
|
||||||
|
&& useradd -m -d /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
72
games/source/entrypoint.sh
Normal file
72
games/source/entrypoint.sh
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Give everything time to initialize for preventing SteamCMD deadlock
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Default the TZ environment variable to UTC.
|
||||||
|
TZ=${TZ:-UTC}
|
||||||
|
export TZ
|
||||||
|
|
||||||
|
# Set environment variable that holds the Internal Docker IP
|
||||||
|
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
|
||||||
|
export INTERNAL_IP
|
||||||
|
|
||||||
|
# Switch to the container's working directory
|
||||||
|
cd /home/container || exit 1
|
||||||
|
|
||||||
|
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
|
||||||
|
# variable format of "${VARIABLE}" before evaluating the string and automatically
|
||||||
|
# replacing the values.
|
||||||
|
PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)")
|
||||||
|
|
||||||
|
## just in case someone removed the defaults.
|
||||||
|
if [ "${STEAM_USER}" == "" ]; then
|
||||||
|
echo -e "steam user is not set.\n"
|
||||||
|
echo -e "Using anonymous user.\n"
|
||||||
|
STEAM_USER=anonymous
|
||||||
|
STEAM_PASS=""
|
||||||
|
STEAM_AUTH=""
|
||||||
|
else
|
||||||
|
echo -e "user set to ${STEAM_USER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
## if auto_update is not set or to 1 update
|
||||||
|
if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
|
||||||
|
# Update Source Server
|
||||||
|
if [ ! -z ${SRCDS_APPID} ]; then
|
||||||
|
./steamcmd/steamcmd.sh +force_install_dir /home/container +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) $( [[ -z ${HLDS_GAME} ]] || printf %s "+app_set_config 90 mod ${HLDS_GAME}" ) $( [[ -z ${VALIDATE} ]] || printf %s "validate" ) +quit
|
||||||
|
else
|
||||||
|
echo -e "No appid set. Starting Server"
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e "Not updating game server as auto update was set to 0. Starting Server"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Display the command we're running in the output, and then execute it with the env
|
||||||
|
# from the container itself.
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
exec env ${PARSED}
|
38
go/1.14/Dockerfile
Normal file
38
go/1.14/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH golang:1.14-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
go/1.15/Dockerfile
Normal file
38
go/1.15/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH golang:1.15-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
go/1.16/Dockerfile
Normal file
38
go/1.16/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH golang:1.16-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
go/1.16/Dockerfile.temp
Normal file
38
go/1.16/Dockerfile.temp
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM golang:1.16-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
49
go/1.16/entrypoint.sh
Normal file
49
go/1.16/entrypoint.sh
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/ash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Default the TZ environment variable to UTC.
|
||||||
|
TZ=${TZ:-UTC}
|
||||||
|
export TZ
|
||||||
|
|
||||||
|
# Set environment variable that holds the Internal Docker IP
|
||||||
|
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
|
||||||
|
export INTERNAL_IP
|
||||||
|
|
||||||
|
# Switch to the container's working directory
|
||||||
|
cd /home/container || exit 1
|
||||||
|
|
||||||
|
# Print Go version
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mgo version\n"
|
||||||
|
go version
|
||||||
|
|
||||||
|
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
|
||||||
|
# variable format of "${VARIABLE}" before evaluating the string and automatically
|
||||||
|
# replacing the values.
|
||||||
|
PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)")
|
||||||
|
|
||||||
|
# Display the command we're running in the output, and then execute it with the env
|
||||||
|
# from the container itself.
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
exec env ${PARSED}
|
38
go/1.17/Dockerfile
Normal file
38
go/1.17/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH golang:1.17-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
49
go/entrypoint.sh
Normal file
49
go/entrypoint.sh
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/ash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Default the TZ environment variable to UTC.
|
||||||
|
TZ=${TZ:-UTC}
|
||||||
|
export TZ
|
||||||
|
|
||||||
|
# Set environment variable that holds the Internal Docker IP
|
||||||
|
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
|
||||||
|
export INTERNAL_IP
|
||||||
|
|
||||||
|
# Switch to the container's working directory
|
||||||
|
cd /home/container || exit 1
|
||||||
|
|
||||||
|
# Print Go version
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mgo version\n"
|
||||||
|
go version
|
||||||
|
|
||||||
|
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
|
||||||
|
# variable format of "${VARIABLE}" before evaluating the string and automatically
|
||||||
|
# replacing the values.
|
||||||
|
PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)")
|
||||||
|
|
||||||
|
# Display the command we're running in the output, and then execute it with the env
|
||||||
|
# from the container itself.
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
exec env ${PARSED}
|
74
installall.sh
Normal file
74
installall.sh
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
set -e
|
||||||
|
|
||||||
|
REGISTRY="git.eplg.services"
|
||||||
|
NAMESPACE="pterodactylimages"
|
||||||
|
|
||||||
|
DIRS=(
|
||||||
|
"games/rust"
|
||||||
|
"games/source"
|
||||||
|
"go/1.14"
|
||||||
|
"go/1.15"
|
||||||
|
"go/1.16"
|
||||||
|
"go/1.17"
|
||||||
|
"installers/alpine"
|
||||||
|
"installers/debian"
|
||||||
|
"java/8"
|
||||||
|
"java/8j9"
|
||||||
|
"java/11"
|
||||||
|
"java/11j9"
|
||||||
|
"java/16"
|
||||||
|
"java/16j9"
|
||||||
|
"java/17"
|
||||||
|
"java/17j9"
|
||||||
|
"java/18"
|
||||||
|
"java/18j9"
|
||||||
|
"java/19"
|
||||||
|
"java/19j9"
|
||||||
|
"java/21"
|
||||||
|
"nodejs/12"
|
||||||
|
"nodejs/14"
|
||||||
|
"nodejs/15"
|
||||||
|
"nodejs/16"
|
||||||
|
"nodejs/17"
|
||||||
|
"nodejs/18"
|
||||||
|
"nodejs/20"
|
||||||
|
"oses/alpine"
|
||||||
|
"oses/debian"
|
||||||
|
"python/3.7"
|
||||||
|
"python/3.8"
|
||||||
|
"python/3.9"
|
||||||
|
"python/3.10"
|
||||||
|
"python/3.11"
|
||||||
|
)
|
||||||
|
|
||||||
|
for DIR in "${DIRS[@]}"; do
|
||||||
|
|
||||||
|
IMAGE_NAME=$(echo "$DIR" | tr '/' '-')
|
||||||
|
|
||||||
|
IMAGE_REF="$REGISTRY/$NAMESPACE/$IMAGE_NAME"
|
||||||
|
|
||||||
|
echo "Building $DIR as $IMAGE_REF..."
|
||||||
|
|
||||||
|
DOCKERFILE_DIR="$(dirname "$DIR/Dockerfile")"
|
||||||
|
|
||||||
|
if [ -f "$(dirname "$DIR")/entrypoint.sh" ] && [ ! -f "$DOCKERFILE_DIR/entrypoint.sh" ]; then
|
||||||
|
cp "$(dirname "$DIR")/entrypoint.sh" "$DOCKERFILE_DIR/"
|
||||||
|
COPIED_ENTRYPOINT=true
|
||||||
|
else
|
||||||
|
COPIED_ENTRYPOINT=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker build -t "$IMAGE_REF" -f "$DIR/Dockerfile" "$DOCKERFILE_DIR"
|
||||||
|
|
||||||
|
if [ "$COPIED_ENTRYPOINT" = true ]; then
|
||||||
|
rm "$DOCKERFILE_DIR/entrypoint.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Pushing $IMAGE_REF..."
|
||||||
|
docker push "$IMAGE_REF"
|
||||||
|
|
||||||
|
echo "Successfully built and pushed $IMAGE_REF"
|
||||||
|
echo "----------------------------------------"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "All images built and pushed successfully!"
|
30
installers/alpine/Dockerfile
Normal file
30
installers/alpine/Dockerfile
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH alpine:latest
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates curl git jq wget
|
35
installers/debian/Dockerfile
Normal file
35
installers/debian/Dockerfile
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH debian:bullseye-slim
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
RUN dpkg --add-architecture i386 \
|
||||||
|
&& apt update \
|
||||||
|
&& apt upgrade -y \
|
||||||
|
&& apt -y --no-install-recommends install ca-certificates curl lib32gcc-s1 libsdl2-2.0-0:i386 git wget
|
47
java/11/Dockerfile
Normal file
47
java/11/Dockerfile
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Hard coded specific Java version to fix issue with manifest constructor class in
|
||||||
|
# newer Java versions breaking all modpacks and versions that are not using the
|
||||||
|
# latest Forge release. This should be removed when the manifest constructor class
|
||||||
|
# issue is backported or if Forge decides to abandon old versions and we need
|
||||||
|
# newer Java versions. Old Quay images were updated like once a year, so it's ok.
|
||||||
|
#
|
||||||
|
# @see https://github.com/McModLauncher/modlauncher/issues/91
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:11.0.13_8-jdk-focal
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
39
java/11j9/Dockerfile
Normal file
39
java/11j9/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH ibm-semeru-runtimes:open-11-jdk
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
40
java/16/Dockerfile
Normal file
40
java/16/Dockerfile
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:16-jdk-focal
|
||||||
|
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
39
java/16j9/Dockerfile
Normal file
39
java/16j9/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH ibm-semeru-runtimes:open-16-jdk
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
39
java/17/Dockerfile
Normal file
39
java/17/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:17-jdk-jammy
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
39
java/17j9/Dockerfile
Normal file
39
java/17j9/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH ibm-semeru-runtimes:open-17-jdk
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
39
java/18/Dockerfile
Normal file
39
java/18/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:18-jdk-jammy
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
39
java/18j9/Dockerfile
Normal file
39
java/18j9/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH ibm-semeru-runtimes:open-18-jdk
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
39
java/19/Dockerfile
Normal file
39
java/19/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:19-jdk-jammy
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
39
java/19j9/Dockerfile
Normal file
39
java/19j9/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH ibm-semeru-runtimes:open-19-jdk
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
39
java/21/Dockerfile
Normal file
39
java/21/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:21-jdk
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
47
java/8/Dockerfile
Normal file
47
java/8/Dockerfile
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Hard coded specific Java version to fix issue with manifest constructor class in
|
||||||
|
# newer Java versions breaking all modpacks and versions that are not using the
|
||||||
|
# latest Forge release. This should be removed when the manifest constructor class
|
||||||
|
# issue is backported or if Forge decides to abandon old versions and we need
|
||||||
|
# newer Java versions. Old Quay images were updated like once a year, so it's ok.
|
||||||
|
#
|
||||||
|
# @see https://github.com/McModLauncher/modlauncher/issues/91
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:8u312-b07-jdk-focal
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
39
java/8j9/Dockerfile
Normal file
39
java/8j9/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH ibm-semeru-runtimes:open-8-jdk
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 \
|
||||||
|
&& useradd -d /home/container -m container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
49
java/entrypoint.sh
Normal file
49
java/entrypoint.sh
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Default the TZ environment variable to UTC.
|
||||||
|
TZ=${TZ:-UTC}
|
||||||
|
export TZ
|
||||||
|
|
||||||
|
# Set environment variable that holds the Internal Docker IP
|
||||||
|
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
|
||||||
|
export INTERNAL_IP
|
||||||
|
|
||||||
|
# Switch to the container's working directory
|
||||||
|
cd /home/container || exit 1
|
||||||
|
|
||||||
|
# Print Java version
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mjava -version\n"
|
||||||
|
java -version
|
||||||
|
|
||||||
|
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
|
||||||
|
# variable format of "${VARIABLE}" before evaluating the string and automatically
|
||||||
|
# replacing the values.
|
||||||
|
PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)")
|
||||||
|
|
||||||
|
# Display the command we're running in the output, and then execute it with the env
|
||||||
|
# from the container itself.
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
exec env ${PARSED}
|
38
nodejs/12/Dockerfile
Normal file
38
nodejs/12/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH node:12-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates curl ffmpeg git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
nodejs/14/Dockerfile
Normal file
38
nodejs/14/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH node:14-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates curl ffmpeg git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
nodejs/15/Dockerfile
Normal file
38
nodejs/15/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH node:15-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates curl ffmpeg git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
nodejs/16/Dockerfile
Normal file
38
nodejs/16/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH node:16-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates curl ffmpeg git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
nodejs/17/Dockerfile
Normal file
38
nodejs/17/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH node:17-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates curl ffmpeg git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
nodejs/18/Dockerfile
Normal file
38
nodejs/18/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH node:18-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates curl ffmpeg git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
nodejs/20/Dockerfile
Normal file
38
nodejs/20/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH node:20-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates curl ffmpeg git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
49
nodejs/entrypoint.sh
Normal file
49
nodejs/entrypoint.sh
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/ash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Default the TZ environment variable to UTC.
|
||||||
|
TZ=${TZ:-UTC}
|
||||||
|
export TZ
|
||||||
|
|
||||||
|
# Set environment variable that holds the Internal Docker IP
|
||||||
|
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
|
||||||
|
export INTERNAL_IP
|
||||||
|
|
||||||
|
# Switch to the container's working directory
|
||||||
|
cd /home/container || exit 1
|
||||||
|
|
||||||
|
# Print Node.js version
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mnode -v\n"
|
||||||
|
node -v
|
||||||
|
|
||||||
|
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
|
||||||
|
# variable format of "${VARIABLE}" before evaluating the string and automatically
|
||||||
|
# replacing the values.
|
||||||
|
PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)")
|
||||||
|
|
||||||
|
# Display the command we're running in the output, and then execute it with the env
|
||||||
|
# from the container itself.
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
exec env ${PARSED}
|
38
oses/alpine/Dockerfile
Normal file
38
oses/alpine/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH alpine:latest
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ca-certificates tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
44
oses/alpine/entrypoint.sh
Normal file
44
oses/alpine/entrypoint.sh
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/ash
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Default the TZ environment variable to UTC.
|
||||||
|
TZ=${TZ:-UTC}
|
||||||
|
export TZ
|
||||||
|
|
||||||
|
# Set environment variable that holds the Internal Docker IP
|
||||||
|
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
|
||||||
|
export INTERNAL_IP
|
||||||
|
|
||||||
|
# Switch to the container's working directory
|
||||||
|
cd /home/container || exit 1
|
||||||
|
|
||||||
|
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
|
||||||
|
# variable format of "${VARIABLE}" before evaluating the string and automatically
|
||||||
|
# replacing the values.
|
||||||
|
PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)")
|
||||||
|
|
||||||
|
# Display the command we're running in the output, and then execute it with the env
|
||||||
|
# from the container itself.
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
exec env ${PARSED}
|
||||||
|
|
23
oses/debian/Dockerfile
Normal file
23
oses/debian/Dockerfile
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH debian:buster-slim
|
||||||
|
|
||||||
|
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apt update && apt upgrade -y \
|
||||||
|
&& apt install -y gcc g++ libgcc1 libc++-dev gdb libc6 git wget curl tar zip unzip binutils xz-utils liblzo2-2 cabextract iproute2 net-tools netcat telnet libatomic1 libsdl1.2debian libsdl2-2.0-0 \
|
||||||
|
libfontconfig libicu63 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadbclient-dev libduktape203 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates tzdata \
|
||||||
|
liblua5.3 libz-dev rapidjson-dev \
|
||||||
|
&& update-locale lang=en_US.UTF-8 \
|
||||||
|
&& dpkg-reconfigure --frontend noninteractive locales \
|
||||||
|
&& useradd -m -d /home/container -s /bin/bash container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/bash", "/entrypoint.sh" ]
|
44
oses/debian/entrypoint.sh
Normal file
44
oses/debian/entrypoint.sh
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Default the TZ environment variable to UTC.
|
||||||
|
TZ=${TZ:-UTC}
|
||||||
|
export TZ
|
||||||
|
|
||||||
|
# Set environment variable that holds the Internal Docker IP
|
||||||
|
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
|
||||||
|
export INTERNAL_IP
|
||||||
|
|
||||||
|
# Switch to the container's working directory
|
||||||
|
cd /home/container || exit 1
|
||||||
|
|
||||||
|
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
|
||||||
|
# variable format of "${VARIABLE}" before evaluating the string and automatically
|
||||||
|
# replacing the values.
|
||||||
|
PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)")
|
||||||
|
|
||||||
|
# Display the command we're running in the output, and then execute it with the env
|
||||||
|
# from the container itself.
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
exec env ${PARSED}
|
38
python/3.10/Dockerfile
Normal file
38
python/3.10/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH python:3.10-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache cmake make ca-certificates curl ffmpeg g++ gcc git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
python/3.11/Dockerfile
Normal file
38
python/3.11/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH python:3.11-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache cmake make ca-certificates curl ffmpeg g++ gcc git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
python/3.7/Dockerfile
Normal file
38
python/3.7/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH python:3.7-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache cmake make ca-certificates curl ffmpeg g++ gcc git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
python/3.8/Dockerfile
Normal file
38
python/3.8/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH python:3.8-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache cmake make ca-certificates curl ffmpeg g++ gcc git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
38
python/3.9/Dockerfile
Normal file
38
python/3.9/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM --platform=$TARGETOS/$TARGETARCH python:3.9-alpine
|
||||||
|
|
||||||
|
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||||
|
LABEL org.opencontainers.image.licenses=MIT
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache cmake make ca-certificates curl ffmpeg g++ gcc git openssl sqlite tar tzdata \
|
||||||
|
&& adduser -D -h /home/container container
|
||||||
|
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./../entrypoint.sh /entrypoint.sh
|
||||||
|
CMD [ "/bin/ash", "/entrypoint.sh" ]
|
49
python/entrypoint.sh
Normal file
49
python/entrypoint.sh
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/ash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2021 Matthew Penner
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Default the TZ environment variable to UTC.
|
||||||
|
TZ=${TZ:-UTC}
|
||||||
|
export TZ
|
||||||
|
|
||||||
|
# Set environment variable that holds the Internal Docker IP
|
||||||
|
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
|
||||||
|
export INTERNAL_IP
|
||||||
|
|
||||||
|
# Switch to the container's working directory
|
||||||
|
cd /home/container || exit 1
|
||||||
|
|
||||||
|
# Print Python version
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython --version\n"
|
||||||
|
python --version
|
||||||
|
|
||||||
|
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
|
||||||
|
# variable format of "${VARIABLE}" before evaluating the string and automatically
|
||||||
|
# replacing the values.
|
||||||
|
PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)")
|
||||||
|
|
||||||
|
# Display the command we're running in the output, and then execute it with the env
|
||||||
|
# from the container itself.
|
||||||
|
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
exec env ${PARSED}
|
Loading…
Add table
Add a link
Reference in a new issue