diff --git a/nodejs/12/Dockerfile b/nodejs/12/Dockerfile index 3a568f9..88c6b21 100644 --- a/nodejs/12/Dockerfile +++ b/nodejs/12/Dockerfile @@ -1,38 +1,14 @@ -# -# 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 node:12-buster-slim -FROM --platform=$BUILDPLATFORM node:12-alpine +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" -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 +RUN apt update \ + && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip \ + && useradd -m -d /home/container container USER container ENV USER=container HOME=/home/container WORKDIR /home/container COPY ./../entrypoint.sh /entrypoint.sh -CMD [ "/bin/ash", "/entrypoint.sh" ] +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/nodejs/14/Dockerfile b/nodejs/14/Dockerfile index 2528511..4306113 100644 --- a/nodejs/14/Dockerfile +++ b/nodejs/14/Dockerfile @@ -1,38 +1,14 @@ -# -# 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 node:14-buster-slim -FROM --platform=$BUILDPLATFORM node:14-alpine +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" -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 +RUN apt update \ + && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip \ + && useradd -m -d /home/container container USER container ENV USER=container HOME=/home/container WORKDIR /home/container COPY ./../entrypoint.sh /entrypoint.sh -CMD [ "/bin/ash", "/entrypoint.sh" ] +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/nodejs/15/Dockerfile b/nodejs/15/Dockerfile index d572184..43cf02c 100644 --- a/nodejs/15/Dockerfile +++ b/nodejs/15/Dockerfile @@ -1,38 +1,14 @@ -# -# 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 node:15-buster-slim -FROM --platform=$BUILDPLATFORM node:15-alpine +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" -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 +RUN apt update \ + && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip \ + && useradd -m -d /home/container container USER container ENV USER=container HOME=/home/container WORKDIR /home/container COPY ./../entrypoint.sh /entrypoint.sh -CMD [ "/bin/ash", "/entrypoint.sh" ] +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/nodejs/16/Dockerfile b/nodejs/16/Dockerfile index f725c40..4eb64b0 100644 --- a/nodejs/16/Dockerfile +++ b/nodejs/16/Dockerfile @@ -1,38 +1,14 @@ -# -# 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 node:16-buster-slim -FROM --platform=$BUILDPLATFORM node:16-alpine +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" -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 +RUN apt update \ + && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip \ + && useradd -m -d /home/container container USER container ENV USER=container HOME=/home/container WORKDIR /home/container COPY ./../entrypoint.sh /entrypoint.sh -CMD [ "/bin/ash", "/entrypoint.sh" ] +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/nodejs/entrypoint.sh b/nodejs/entrypoint.sh index 1e12998..440c2bf 100644 --- a/nodejs/entrypoint.sh +++ b/nodejs/entrypoint.sh @@ -1,49 +1,15 @@ -#!/bin/ash +#!/bin/bash +cd /home/container -# -# 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. -# +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` -# 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;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" +# Print Node.js Version 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 -)") +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo ":/home/container$ ${MODIFIED_STARTUP}" -# 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} +# Run the Server +eval ${MODIFIED_STARTUP}