From b515b8a09e4f7dca35071c9aff949f6272f9272e Mon Sep 17 00:00:00 2001 From: Th3Dilli Date: Thu, 30 Sep 2021 22:54:38 +0200 Subject: [PATCH 01/65] add mohaa image --- .github/workflows/games.yml | 1 + README.md | 6 +++-- games/mohaa/Dockerfile | 22 +++++++++++++++++++ games/mohaa/entrypoint.sh | 44 +++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 games/mohaa/Dockerfile create mode 100644 games/mohaa/entrypoint.sh diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index 6d95474..258a506 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -18,6 +18,7 @@ jobs: - arma3 - fivem - source + - mohaa steps: - uses: actions/checkout@v2 - uses: docker/setup-buildx-action@v1 diff --git a/README.md b/README.md index 591624b..ee4c5ed 100644 --- a/README.md +++ b/README.md @@ -64,9 +64,11 @@ is tagged correctly. * [`arma3`](/games/arma3) * `ghcr.io/parkervcp/games:arma3` * [`fivem`](/games/fivem) - * `ghcr.io/parkervcp/games:fivem` + * `ghcr.io/parkervcp/games:fivem` * [`source`](/games/source) - * `ghcr.io/parkervcp/games:source` + * `ghcr.io/parkervcp/games:source` + * [`mohaa`](games/mohaa) + * `ghcr.io/pterodactyl/games:mohaa` ### [Golang](/go) * [`go1.14`](/go/1.14) * `ghcr.io/parkervcp/yolks:go_1.14` diff --git a/games/mohaa/Dockerfile b/games/mohaa/Dockerfile new file mode 100644 index 0000000..51753da --- /dev/null +++ b/games/mohaa/Dockerfile @@ -0,0 +1,22 @@ +FROM --platform=$TARGETOS/$TARGETARCH debian:bullseye-slim + +LABEL author="Manuel Dielacher" maintainer="th3dilli@gmx.at" + +LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" +LABEL org.opencontainers.image.licenses=MIT + +RUN dpkg --add-architecture i386 \ + && apt update && apt upgrade -y \ + && apt install -y lib32gcc-s1 lib32stdc++6 libstdc++5:i386 locales \ + && 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" ] diff --git a/games/mohaa/entrypoint.sh b/games/mohaa/entrypoint.sh new file mode 100644 index 0000000..7fecb8b --- /dev/null +++ b/games/mohaa/entrypoint.sh @@ -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;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} From 9754274aab34a8d94d60c27abb76914c172f62a8 Mon Sep 17 00:00:00 2001 From: Th3Dilli Date: Fri, 1 Oct 2021 18:23:55 +0200 Subject: [PATCH 02/65] add missing dependency for entrypoint.sh --- games/mohaa/Dockerfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/games/mohaa/Dockerfile b/games/mohaa/Dockerfile index 51753da..e030fdd 100644 --- a/games/mohaa/Dockerfile +++ b/games/mohaa/Dockerfile @@ -5,12 +5,12 @@ LABEL author="Manuel Dielacher" maintainer="th3dilli@gmx.at" LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" LABEL org.opencontainers.image.licenses=MIT -RUN dpkg --add-architecture i386 \ - && apt update && apt upgrade -y \ - && apt install -y lib32gcc-s1 lib32stdc++6 libstdc++5:i386 locales \ - && update-locale lang=en_US.UTF-8 \ - && dpkg-reconfigure --frontend noninteractive locales \ - && useradd -m -d /home/container -s /bin/bash container +RUN dpkg --add-architecture i386 \ + && apt update && apt upgrade -y \ + && apt install -y iproute2 locales lib32gcc-s1 lib32stdc++6 libstdc++5:i386 \ + && 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 From 586cdaa7937b6d9500e20fb90a8046802a994843 Mon Sep 17 00:00:00 2001 From: Th3Dilli Date: Wed, 15 Dec 2021 20:05:55 +0100 Subject: [PATCH 03/65] Revert "add missing dependency for entrypoint.sh" This reverts commit 9754274aab34a8d94d60c27abb76914c172f62a8. --- games/mohaa/Dockerfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/games/mohaa/Dockerfile b/games/mohaa/Dockerfile index e030fdd..51753da 100644 --- a/games/mohaa/Dockerfile +++ b/games/mohaa/Dockerfile @@ -5,12 +5,12 @@ LABEL author="Manuel Dielacher" maintainer="th3dilli@gmx.at" LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" LABEL org.opencontainers.image.licenses=MIT -RUN dpkg --add-architecture i386 \ - && apt update && apt upgrade -y \ - && apt install -y iproute2 locales lib32gcc-s1 lib32stdc++6 libstdc++5:i386 \ - && update-locale lang=en_US.UTF-8 \ - && dpkg-reconfigure --frontend noninteractive locales \ - && useradd -m -d /home/container -s /bin/bash container +RUN dpkg --add-architecture i386 \ + && apt update && apt upgrade -y \ + && apt install -y lib32gcc-s1 lib32stdc++6 libstdc++5:i386 locales \ + && 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 From 4fb11156b85cfc9b9698dedce04d902da9a6af54 Mon Sep 17 00:00:00 2001 From: Th3Dilli Date: Wed, 15 Dec 2021 20:06:09 +0100 Subject: [PATCH 04/65] Revert "add mohaa image" This reverts commit b515b8a09e4f7dca35071c9aff949f6272f9272e. --- .github/workflows/games.yml | 1 - README.md | 6 ++--- games/mohaa/Dockerfile | 22 ------------------- games/mohaa/entrypoint.sh | 44 ------------------------------------- 4 files changed, 2 insertions(+), 71 deletions(-) delete mode 100644 games/mohaa/Dockerfile delete mode 100644 games/mohaa/entrypoint.sh diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index 258a506..6d95474 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -18,7 +18,6 @@ jobs: - arma3 - fivem - source - - mohaa steps: - uses: actions/checkout@v2 - uses: docker/setup-buildx-action@v1 diff --git a/README.md b/README.md index ee4c5ed..591624b 100644 --- a/README.md +++ b/README.md @@ -64,11 +64,9 @@ is tagged correctly. * [`arma3`](/games/arma3) * `ghcr.io/parkervcp/games:arma3` * [`fivem`](/games/fivem) - * `ghcr.io/parkervcp/games:fivem` + * `ghcr.io/parkervcp/games:fivem` * [`source`](/games/source) - * `ghcr.io/parkervcp/games:source` - * [`mohaa`](games/mohaa) - * `ghcr.io/pterodactyl/games:mohaa` + * `ghcr.io/parkervcp/games:source` ### [Golang](/go) * [`go1.14`](/go/1.14) * `ghcr.io/parkervcp/yolks:go_1.14` diff --git a/games/mohaa/Dockerfile b/games/mohaa/Dockerfile deleted file mode 100644 index 51753da..0000000 --- a/games/mohaa/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM --platform=$TARGETOS/$TARGETARCH debian:bullseye-slim - -LABEL author="Manuel Dielacher" maintainer="th3dilli@gmx.at" - -LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" -LABEL org.opencontainers.image.licenses=MIT - -RUN dpkg --add-architecture i386 \ - && apt update && apt upgrade -y \ - && apt install -y lib32gcc-s1 lib32stdc++6 libstdc++5:i386 locales \ - && 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" ] diff --git a/games/mohaa/entrypoint.sh b/games/mohaa/entrypoint.sh deleted file mode 100644 index 7fecb8b..0000000 --- a/games/mohaa/entrypoint.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/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;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} From de54edec3b3aa64d02b4c7f8a6fbfa398f56ed63 Mon Sep 17 00:00:00 2001 From: Th3Dilli Date: Wed, 15 Dec 2021 20:10:44 +0100 Subject: [PATCH 05/65] add mohaa deps --- oses/debian/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oses/debian/Dockerfile b/oses/debian/Dockerfile index 68978fe..d6c866e 100644 --- a/oses/debian/Dockerfile +++ b/oses/debian/Dockerfile @@ -18,7 +18,7 @@ RUN apt update \ ## install dependencies RUN apt install -y gcc g++ libgcc1 lib32gcc1 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 + liblua5.3 libz-dev rapidjson-dev lib32stdc++6 libstdc++5:i386 ## configure locale RUN update-locale lang=en_US.UTF-8 \ From 8a4ef8387de35150c1b8f0ce9bf6c308d2e9f595 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Mon, 10 Jan 2022 18:22:04 +0100 Subject: [PATCH 06/65] add libzip4 to base debian (#34) --- oses/debian/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oses/debian/Dockerfile b/oses/debian/Dockerfile index 270aaa5..4a73161 100644 --- a/oses/debian/Dockerfile +++ b/oses/debian/Dockerfile @@ -20,7 +20,7 @@ RUN apt update \ ## Install dependencies RUN apt install -y gcc g++ libgcc1 lib32gcc-s1 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 libicu67 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadbclient-dev-compat libduktape205 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates \ - liblua5.3-0 libz-dev rapidjson-dev tzdata libevent-dev + liblua5.3-0 libz-dev rapidjson-dev tzdata libevent-dev libzip4 ## Configure locale RUN update-locale lang=en_US.UTF-8 \ From f5981b736dc26229988a059365b0750a0f673320 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 22 Jan 2022 12:49:44 +0200 Subject: [PATCH 07/65] feat(base_debian): remove lib32gcc-s1 for ARM support (#36) --- .github/workflows/base.yml | 3 ++- oses/alpine/Dockerfile | 2 +- oses/debian/Dockerfile | 4 ++-- oses/ubuntu/Dockerfile | 10 +++++----- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/base.yml b/.github/workflows/base.yml index 98f8534..6bfa0e6 100644 --- a/.github/workflows/base.yml +++ b/.github/workflows/base.yml @@ -21,6 +21,7 @@ jobs: - ubuntu steps: - uses: actions/checkout@v2 + - uses: docker/setup-qemu-action@v1 - uses: docker/setup-buildx-action@v1 with: version: "v0.5.1" @@ -34,7 +35,7 @@ jobs: with: context: ./oses/${{ matrix.oses }} file: ./oses/${{ matrix.oses }}/Dockerfile - platforms: linux/amd64 + platforms: linux/amd64,linux/arm64 push: true tags: | ghcr.io/parkervcp/yolks:${{ matrix.oses }} diff --git a/oses/alpine/Dockerfile b/oses/alpine/Dockerfile index 9625a87..b7badc9 100644 --- a/oses/alpine/Dockerfile +++ b/oses/alpine/Dockerfile @@ -20,7 +20,7 @@ # SOFTWARE. # -FROM --platform=$BUILDPLATFORM alpine:latest +FROM --platform=$TARGETOS/$TARGETARCH alpine:latest LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io" diff --git a/oses/debian/Dockerfile b/oses/debian/Dockerfile index 4a73161..e7a48ba 100644 --- a/oses/debian/Dockerfile +++ b/oses/debian/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:bullseye-slim +FROM --platform=$TARGETOS/$TARGETARCH debian:bullseye-slim LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" @@ -18,7 +18,7 @@ RUN apt update \ && apt upgrade -y ## Install dependencies -RUN apt install -y gcc g++ libgcc1 lib32gcc-s1 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 \ +RUN 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 libicu67 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadbclient-dev-compat libduktape205 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates \ liblua5.3-0 libz-dev rapidjson-dev tzdata libevent-dev libzip4 diff --git a/oses/ubuntu/Dockerfile b/oses/ubuntu/Dockerfile index d6f3a62..63ff9ab 100644 --- a/oses/ubuntu/Dockerfile +++ b/oses/ubuntu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:18.04 +FROM --platform=$TARGETOS/$TARGETARCH ubuntu:18.04 LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" @@ -9,18 +9,18 @@ RUN useradd -m -d /home/container -s /bin/bash container ## update base packages RUN apt update \ - && apt upgrade -y + && apt upgrade -y ## install dependencies -RUN apt install -y gcc g++ libgcc1 lib32gcc1 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 \ +RUN 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 libicu60 libiculx60 icu-devtools libunwind8 libssl1.0.0 libssl1.0-dev sqlite3 libsqlite3-dev libmariadbclient-dev libduktape202 libzip4 locales ffmpeg apt-transport-https init-system-helpers \ libcurl3-gnutls libjsoncpp1 libleveldb1v5 liblua5.1-0 libluajit-5.1-2 libsqlite3-0 libfluidsynth1 bzip2 zlib1g libevent-dev ## configure locale RUN update-locale lang=en_US.UTF-8 \ - && dpkg-reconfigure --frontend noninteractive locales + && dpkg-reconfigure --frontend noninteractive locales WORKDIR /home/container COPY ./entrypoint.sh /entrypoint.sh -CMD ["/bin/bash", "/entrypoint.sh"] +CMD [ "/bin/bash", "/entrypoint.sh" ] From 6ca451ec48d3ad27c6a04963807be41d0aa20e3d Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 22 Jan 2022 13:00:09 +0200 Subject: [PATCH 08/65] feat(mono): install lib32gcc-s1 for steam (#37) --- mono/latest/Dockerfile | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/mono/latest/Dockerfile b/mono/latest/Dockerfile index 041d65a..c012146 100644 --- a/mono/latest/Dockerfile +++ b/mono/latest/Dockerfile @@ -1,7 +1,3 @@ -# ---------------------------------- -# Mono Latest Image -# Minimum Panel Version: 1.2.x -# ---------------------------------- FROM ghcr.io/parkervcp/yolks:debian LABEL author="Torsten Widmann" maintainer="support@goover.de" @@ -12,11 +8,11 @@ RUN apt install -y fontconfig dirmngr RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF RUN sh -c 'echo "deb https://download.mono-project.com/repo/debian stable-buster main" > /etc/apt/sources.list.d/mono-official-stable.list' RUN apt update -RUN apt install mono-complete -y +RUN apt install -y mono-complete lib32gcc-s1 USER container ENV USER=container HOME=/home/container WORKDIR /home/container COPY ./entrypoint.sh /entrypoint.sh -CMD ["/bin/bash", "/entrypoint.sh"] +CMD [ "/bin/bash", "/entrypoint.sh" ] From fc453017ff671da1871e63ec1328352f72976353 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sun, 23 Jan 2022 14:58:11 +0100 Subject: [PATCH 09/65] feat: add MariaDB Images (#38) --- .github/workflows/mariadb.yml | 44 +++++++++++++++++++++++++++++++++++ README.md | 13 ++++++++++- mariadb/10.3/Dockerfile | 19 +++++++++++++++ mariadb/10.4/Dockerfile | 19 +++++++++++++++ mariadb/10.5/Dockerfile | 19 +++++++++++++++ mariadb/10.6/Dockerfile | 19 +++++++++++++++ mariadb/10.7/Dockerfile | 19 +++++++++++++++ mariadb/entrypoint.sh | 12 ++++++++++ 8 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/mariadb.yml create mode 100644 mariadb/10.3/Dockerfile create mode 100644 mariadb/10.4/Dockerfile create mode 100644 mariadb/10.5/Dockerfile create mode 100644 mariadb/10.6/Dockerfile create mode 100644 mariadb/10.7/Dockerfile create mode 100644 mariadb/entrypoint.sh diff --git a/.github/workflows/mariadb.yml b/.github/workflows/mariadb.yml new file mode 100644 index 0000000..e29534e --- /dev/null +++ b/.github/workflows/mariadb.yml @@ -0,0 +1,44 @@ +name: build mariadb +on: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + schedule: + - cron: "0 0 * * 1" + push: + branches: + - master + paths: + - mariadb/** +jobs: + push: + name: "yolks:mariadb_${{ matrix.tag }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tag: + - '10.3' + - '10.4' + - '10.5' + - '10.6' + - '10.7' + steps: + - uses: actions/checkout@v2 + - uses: docker/setup-qemu-action@v1 + - uses: docker/setup-buildx-action@v1 + with: + version: "v0.5.1" + buildkitd-flags: --debug + - uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.REGISTRY_TOKEN }} + - uses: docker/build-push-action@v2 + with: + context: ./mariadb + file: ./mariadb/${{ matrix.tag }}/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/parkervcp/yolks:mariadb_${{ matrix.tag }} diff --git a/README.md b/README.md index c2b666b..fda8e95 100644 --- a/README.md +++ b/README.md @@ -106,8 +106,19 @@ is tagged correctly. * [`java17`](/java/17) * `ghcr.io/parkervcp/yolks:java_17` -### [Mono](/mono) +### [MariaDB](/mariadb) + * [`MariaDB 10.3`](/mariadb/10.3) + * `ghcr.io/parkervcp/yolks:mariadb_10.3` + * [`MariaDB 10.4`](/mariadb/10.4) + * `ghcr.io/parkervcp/yolks:mariadb_10.4` + * [`MariaDB 10.5`](/mariadb/10.5) + * `ghcr.io/parkervcp/yolks:mariadb_10.5` + * [`MariaDB 10.6`](/mariadb/10.6) + * `ghcr.io/parkervcp/yolks:mariadb_10.6` + * [`MariaDB 10.7`](/mariadb/10.7) + * `ghcr.io/parkervcp/yolks:mariadb_10.7` +### [Mono](/mono) * [`mono_latest`](/mono/latest) * `ghcr.io/parkervcp/yolks:mono_latest` diff --git a/mariadb/10.3/Dockerfile b/mariadb/10.3/Dockerfile new file mode 100644 index 0000000..f5948c8 --- /dev/null +++ b/mariadb/10.3/Dockerfile @@ -0,0 +1,19 @@ +# ----------------------------------------------------- +# MariaDB Image for Pterodactyl +# ----------------------------------------------------- +FROM mariadb:10.3 + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt update -y \ + && apt install -y netcat \ + && useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/mariadb/10.4/Dockerfile b/mariadb/10.4/Dockerfile new file mode 100644 index 0000000..fdd6712 --- /dev/null +++ b/mariadb/10.4/Dockerfile @@ -0,0 +1,19 @@ +# ----------------------------------------------------- +# MariaDB Image for Pterodactyl +# ----------------------------------------------------- +FROM mariadb:10.4 + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt update -y \ + && apt install -y netcat \ + && useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/mariadb/10.5/Dockerfile b/mariadb/10.5/Dockerfile new file mode 100644 index 0000000..3e18fa9 --- /dev/null +++ b/mariadb/10.5/Dockerfile @@ -0,0 +1,19 @@ +# ----------------------------------------------------- +# MariaDB Image for Pterodactyl +# ----------------------------------------------------- +FROM mariadb:10.5 + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt update -y \ + && apt install -y netcat \ + && useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/mariadb/10.6/Dockerfile b/mariadb/10.6/Dockerfile new file mode 100644 index 0000000..a9fc85e --- /dev/null +++ b/mariadb/10.6/Dockerfile @@ -0,0 +1,19 @@ +# ----------------------------------------------------- +# MariaDB Image for Pterodactyl +# ----------------------------------------------------- +FROM mariadb:10.6 + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt update -y \ + && apt install -y netcat \ + && useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/mariadb/10.7/Dockerfile b/mariadb/10.7/Dockerfile new file mode 100644 index 0000000..125f99d --- /dev/null +++ b/mariadb/10.7/Dockerfile @@ -0,0 +1,19 @@ +# ----------------------------------------------------- +# MariaDB Image for Pterodactyl +# ----------------------------------------------------- +FROM mariadb:10.7 + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt update -y \ + && apt install -y netcat \ + && useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/mariadb/entrypoint.sh b/mariadb/entrypoint.sh new file mode 100644 index 0000000..cd80a9a --- /dev/null +++ b/mariadb/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} From 91cb52ee6bab675b3108d9d5f0dc07300109e9d3 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Mon, 24 Jan 2022 16:26:20 +0100 Subject: [PATCH 10/65] feat: Redis 5 and 6 images (#39) --- .github/workflows/redis.yml | 41 +++++++++++++++++++++++++++++++++++++ README.md | 6 ++++++ redis/5/Dockerfile | 20 ++++++++++++++++++ redis/6/Dockerfile | 20 ++++++++++++++++++ redis/entrypoint.sh | 12 +++++++++++ 5 files changed, 99 insertions(+) create mode 100644 .github/workflows/redis.yml create mode 100644 redis/5/Dockerfile create mode 100644 redis/6/Dockerfile create mode 100644 redis/entrypoint.sh diff --git a/.github/workflows/redis.yml b/.github/workflows/redis.yml new file mode 100644 index 0000000..d1a7552 --- /dev/null +++ b/.github/workflows/redis.yml @@ -0,0 +1,41 @@ +name: build redis +on: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + schedule: + - cron: "0 0 * * 1" + push: + branches: + - master + paths: + - redis/** +jobs: + push: + name: "yolks:redis_${{ matrix.tag }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tag: + - 5 + - 6 + steps: + - uses: actions/checkout@v2 + - uses: docker/setup-qemu-action@v1 + - uses: docker/setup-buildx-action@v1 + with: + version: "v0.5.1" + buildkitd-flags: --debug + - uses: docker/login-action@v1 + with: + egistry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.REGISTRY_TOKEN }} + - uses: docker/build-push-action@v2 + with: + context: ./redis + file: ./redis/${{ matrix.tag }}/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/parkervcp/yolks:redis_${{ matrix.tag }} diff --git a/README.md b/README.md index fda8e95..b7e770c 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,12 @@ is tagged correctly. * [`python3.10`](/python/3.10) * `ghcr.io/parkervcp/yolks:python_3.10` +### [Redis](/redis) + * [`Redis 5`](/redis/5) + * `ghcr.io/parkervcp/yolks:redis_5` + * [`Redis 6`](/redis/6) + * `ghcr.io/parkervcp/yolks:redis_6` + ### [Voice](/voice) * [`TeaSpeak`](/teaspeak) diff --git a/redis/5/Dockerfile b/redis/5/Dockerfile new file mode 100644 index 0000000..f1ddfc3 --- /dev/null +++ b/redis/5/Dockerfile @@ -0,0 +1,20 @@ +# ---------------------------------- +# Environment: redis +# ---------------------------------- +FROM redis:5-bullseye + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt -y update && \ + apt -y upgrade && \ + apt -y install iproute2 && \ + useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file diff --git a/redis/6/Dockerfile b/redis/6/Dockerfile new file mode 100644 index 0000000..547dd17 --- /dev/null +++ b/redis/6/Dockerfile @@ -0,0 +1,20 @@ +# ---------------------------------- +# Environment: redis +# ---------------------------------- +FROM redis:6-bullseye + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt -y update && \ + apt -y upgrade && \ + apt -y install iproute2 && \ + useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file diff --git a/redis/entrypoint.sh b/redis/entrypoint.sh new file mode 100644 index 0000000..e0ae99e --- /dev/null +++ b/redis/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} From 68ef32ee2a3fd2363fcfb4393545af7485805359 Mon Sep 17 00:00:00 2001 From: softwarenoob Date: Mon, 24 Jan 2022 17:41:43 +0200 Subject: [PATCH 11/65] ci(redis): fix registry typo --- .github/workflows/redis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/redis.yml b/.github/workflows/redis.yml index d1a7552..9752964 100644 --- a/.github/workflows/redis.yml +++ b/.github/workflows/redis.yml @@ -28,7 +28,7 @@ jobs: buildkitd-flags: --debug - uses: docker/login-action@v1 with: - egistry: ghcr.io + registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - uses: docker/build-push-action@v2 From c263e42dacc94f6edbea3bc32afd041ad9069017 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Tue, 25 Jan 2022 16:08:35 +0100 Subject: [PATCH 12/65] feat: add PostgreSQL/MongoDB Images and fix multiarch (#40) add PostgreSQL/MongoDB Images and fixes multi-arch builds for MariaDB, Redis. --- .github/workflows/mongodb.yml | 41 +++++++++++++++++++++++++++++++ .github/workflows/postgres.yml | 45 ++++++++++++++++++++++++++++++++++ README.md | 20 +++++++++++++++ mariadb/10.3/Dockerfile | 2 +- mariadb/10.4/Dockerfile | 2 +- mariadb/10.5/Dockerfile | 2 +- mariadb/10.6/Dockerfile | 2 +- mariadb/10.7/Dockerfile | 2 +- mongodb/4/Dockerfile | 19 ++++++++++++++ mongodb/5/Dockerfile | 19 ++++++++++++++ mongodb/entrypoint.sh | 12 +++++++++ postgres/10/Dockerfile | 16 ++++++++++++ postgres/11/Dockerfile | 16 ++++++++++++ postgres/12/Dockerfile | 16 ++++++++++++ postgres/13/Dockerfile | 16 ++++++++++++ postgres/14/Dockerfile | 16 ++++++++++++ postgres/9/Dockerfile | 16 ++++++++++++ postgres/entrypoint.sh | 15 ++++++++++++ redis/5/Dockerfile | 2 +- redis/6/Dockerfile | 2 +- 20 files changed, 274 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/mongodb.yml create mode 100644 .github/workflows/postgres.yml create mode 100644 mongodb/4/Dockerfile create mode 100644 mongodb/5/Dockerfile create mode 100644 mongodb/entrypoint.sh create mode 100644 postgres/10/Dockerfile create mode 100644 postgres/11/Dockerfile create mode 100644 postgres/12/Dockerfile create mode 100644 postgres/13/Dockerfile create mode 100644 postgres/14/Dockerfile create mode 100644 postgres/9/Dockerfile create mode 100644 postgres/entrypoint.sh diff --git a/.github/workflows/mongodb.yml b/.github/workflows/mongodb.yml new file mode 100644 index 0000000..71c2d89 --- /dev/null +++ b/.github/workflows/mongodb.yml @@ -0,0 +1,41 @@ +name: build mongodb +on: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + schedule: + - cron: "0 0 * * 1" + push: + branches: + - master + paths: + - mongodb/** +jobs: + push: + name: "yolks:mongodb_${{ matrix.tag }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tag: + - 4 + - 5 + steps: + - uses: actions/checkout@v2 + - uses: docker/setup-qemu-action@v1 + - uses: docker/setup-buildx-action@v1 + with: + version: "v0.5.1" + buildkitd-flags: --debug + - uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.REGISTRY_TOKEN }} + - uses: docker/build-push-action@v2 + with: + context: ./mongodb + file: ./mongodb/${{ matrix.tag }}/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/parkervcp/yolks:mongodb_${{ matrix.tag }} diff --git a/.github/workflows/postgres.yml b/.github/workflows/postgres.yml new file mode 100644 index 0000000..984e616 --- /dev/null +++ b/.github/workflows/postgres.yml @@ -0,0 +1,45 @@ +name: build postgres +on: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + schedule: + - cron: "0 0 * * 1" + push: + branches: + - master + paths: + - postgres/** +jobs: + push: + name: "yolks:postgres_${{ matrix.tag }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tag: + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + steps: + - uses: actions/checkout@v2 + - uses: docker/setup-qemu-action@v1 + - uses: docker/setup-buildx-action@v1 + with: + version: "v0.5.1" + buildkitd-flags: --debug + - uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.REGISTRY_TOKEN }} + - uses: docker/build-push-action@v2 + with: + context: ./postgres + file: ./postgres/${{ matrix.tag }}/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/parkervcp/yolks:postgres_${{ matrix.tag }} diff --git a/README.md b/README.md index b7e770c..c3578f3 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,12 @@ is tagged correctly. * [`MariaDB 10.7`](/mariadb/10.7) * `ghcr.io/parkervcp/yolks:mariadb_10.7` +### [MongoDB](/mongodb) + * [`MongoDB 4`](/mongodb/4) + * `ghcr.io/parkervcp/yolks:mongodb_4` + * [`MongoDB 5`](/mongodb/5) + * `ghcr.io/parkervcp/yolks:mongodb_5` + ### [Mono](/mono) * [`mono_latest`](/mono/latest) * `ghcr.io/parkervcp/yolks:mono_latest` @@ -133,6 +139,20 @@ is tagged correctly. * [`node17`](/nodejs/17) * `ghcr.io/parkervcp/yolks:nodejs_17` +### [PostgreSQL](/postgres) + * [`Postgres 9`](/postgres/9) + * `ghcr.io/parkervcp/yolks:postgres_9` + * [`Postgres 10`](/postgres/10) + * `ghcr.io/parkervcp/yolks:postgres_10` + * [`Postgres 11`](/postgres/11) + * `ghcr.io/parkervcp/yolks:postgres_11` + * [`Postgres 12`](/postgres/12) + * `ghcr.io/parkervcp/yolks:postgres_12` + * [`Postgres 13`](/postgres/13) + * `ghcr.io/parkervcp/yolks:postgres_13` + * [`Postgres 14`](/postgres/14) + * `ghcr.io/parkervcp/yolks:postgres_14` + ### [Python](/python) * [`python3.7`](/python/3.7) diff --git a/mariadb/10.3/Dockerfile b/mariadb/10.3/Dockerfile index f5948c8..ef1ea23 100644 --- a/mariadb/10.3/Dockerfile +++ b/mariadb/10.3/Dockerfile @@ -1,7 +1,7 @@ # ----------------------------------------------------- # MariaDB Image for Pterodactyl # ----------------------------------------------------- -FROM mariadb:10.3 +FROM --platform=$TARGETOS/$TARGETARCH mariadb:10.3 LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" diff --git a/mariadb/10.4/Dockerfile b/mariadb/10.4/Dockerfile index fdd6712..5f0193c 100644 --- a/mariadb/10.4/Dockerfile +++ b/mariadb/10.4/Dockerfile @@ -1,7 +1,7 @@ # ----------------------------------------------------- # MariaDB Image for Pterodactyl # ----------------------------------------------------- -FROM mariadb:10.4 +FROM --platform=$TARGETOS/$TARGETARCH mariadb:10.4 LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" diff --git a/mariadb/10.5/Dockerfile b/mariadb/10.5/Dockerfile index 3e18fa9..f990e81 100644 --- a/mariadb/10.5/Dockerfile +++ b/mariadb/10.5/Dockerfile @@ -1,7 +1,7 @@ # ----------------------------------------------------- # MariaDB Image for Pterodactyl # ----------------------------------------------------- -FROM mariadb:10.5 +FROM --platform=$TARGETOS/$TARGETARCH mariadb:10.5 LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" diff --git a/mariadb/10.6/Dockerfile b/mariadb/10.6/Dockerfile index a9fc85e..e4adf95 100644 --- a/mariadb/10.6/Dockerfile +++ b/mariadb/10.6/Dockerfile @@ -1,7 +1,7 @@ # ----------------------------------------------------- # MariaDB Image for Pterodactyl # ----------------------------------------------------- -FROM mariadb:10.6 +FROM --platform=$TARGETOS/$TARGETARCH mariadb:10.6 LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" diff --git a/mariadb/10.7/Dockerfile b/mariadb/10.7/Dockerfile index 125f99d..f05b006 100644 --- a/mariadb/10.7/Dockerfile +++ b/mariadb/10.7/Dockerfile @@ -1,7 +1,7 @@ # ----------------------------------------------------- # MariaDB Image for Pterodactyl # ----------------------------------------------------- -FROM mariadb:10.7 +FROM --platform=$TARGETOS/$TARGETARCH mariadb:10.7 LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" diff --git a/mongodb/4/Dockerfile b/mongodb/4/Dockerfile new file mode 100644 index 0000000..52b6885 --- /dev/null +++ b/mongodb/4/Dockerfile @@ -0,0 +1,19 @@ +# ---------------------------------- +# Environment: MongoDB +# ---------------------------------- +FROM --platform=$TARGETOS/$TARGETARCH mongo:4-focal + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt update -y \ + && apt install -y netcat iproute2 \ + && useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/mongodb/5/Dockerfile b/mongodb/5/Dockerfile new file mode 100644 index 0000000..0b70021 --- /dev/null +++ b/mongodb/5/Dockerfile @@ -0,0 +1,19 @@ +# ---------------------------------- +# Environment: MongoDB +# ---------------------------------- +FROM --platform=$TARGETOS/$TARGETARCH mongo:5-focal + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt update -y \ + && apt install -y netcat iproute2 \ + && useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/mongodb/entrypoint.sh b/mongodb/entrypoint.sh new file mode 100644 index 0000000..cd80a9a --- /dev/null +++ b/mongodb/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} diff --git a/postgres/10/Dockerfile b/postgres/10/Dockerfile new file mode 100644 index 0000000..44467e1 --- /dev/null +++ b/postgres/10/Dockerfile @@ -0,0 +1,16 @@ +# ---------------------------------- +# Environment: Postgres DB +# ---------------------------------- +FROM --platform=$TARGETOS/$TARGETARCH postgres:10-alpine + +LABEL author="Parker" maintainer="parker@pterodactyl.io" + +# UID 999 is the default pterodactyl user +RUN adduser -D -h /home/container container + +USER container +ENV HOME /home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/11/Dockerfile b/postgres/11/Dockerfile new file mode 100644 index 0000000..7b0b6a0 --- /dev/null +++ b/postgres/11/Dockerfile @@ -0,0 +1,16 @@ +# ---------------------------------- +# Environment: Postgres DB +# ----------------------------------- +FROM --platform=$TARGETOS/$TARGETARCH postgres:11-alpine + +LABEL author="Parker" maintainer="parker@pterodactyl.io" + +# UID 999 is the default pterodactyl user +RUN adduser -D -h /home/container container + +USER container +ENV HOME /home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/12/Dockerfile b/postgres/12/Dockerfile new file mode 100644 index 0000000..ee9075e --- /dev/null +++ b/postgres/12/Dockerfile @@ -0,0 +1,16 @@ +# ---------------------------------- +# Environment: Postgres DB +# ---------------------------------- +FROM --platform=$TARGETOS/$TARGETARCH postgres:12-alpine + +LABEL author="Parker" maintainer="parker@pterodactyl.io" + +# UID 999 is the default pterodactyl user +RUN adduser -D -h /home/container container + +USER container +ENV HOME /home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/13/Dockerfile b/postgres/13/Dockerfile new file mode 100644 index 0000000..9d6d418 --- /dev/null +++ b/postgres/13/Dockerfile @@ -0,0 +1,16 @@ +# ---------------------------------- +# Environment: Postgres DB +# ---------------------------------- +FROM --platform=$TARGETOS/$TARGETARCH postgres:13-alpine + +LABEL author="Parker" maintainer="parker@pterodactyl.io" + +# UID 999 is the default pterodactyl user +RUN adduser -D -h /home/container container + +USER container +ENV HOME /home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/14/Dockerfile b/postgres/14/Dockerfile new file mode 100644 index 0000000..77c1fee --- /dev/null +++ b/postgres/14/Dockerfile @@ -0,0 +1,16 @@ +# ---------------------------------- +# Environment: Postgres DB +# ---------------------------------- +FROM --platform=$TARGETOS/$TARGETARCH postgres:14-alpine + +LABEL author="Parker" maintainer="parker@pterodactyl.io" + +# UID 999 is the default pterodactyl user +RUN adduser -D -h /home/container container + +USER container +ENV HOME /home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/9/Dockerfile b/postgres/9/Dockerfile new file mode 100644 index 0000000..c410d10 --- /dev/null +++ b/postgres/9/Dockerfile @@ -0,0 +1,16 @@ +# ---------------------------------- +# Environment: Postgres DB +# ---------------------------------- +FROM --platform=$TARGETOS/$TARGETARCH postgres:9-alpine + +LABEL author="Parker" maintainer="parker@pterodactyl.io" + +# UID 999 is the default pterodactyl user +RUN adduser -D -h /home/container container + +USER container +ENV HOME /home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/entrypoint.sh b/postgres/entrypoint.sh new file mode 100644 index 0000000..0a72c42 --- /dev/null +++ b/postgres/entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/ash +cd /home/container + +#output current postgres version +postgres --version + +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Replace Startup Variables +MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` +echo ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} diff --git a/redis/5/Dockerfile b/redis/5/Dockerfile index f1ddfc3..0bf23ec 100644 --- a/redis/5/Dockerfile +++ b/redis/5/Dockerfile @@ -1,7 +1,7 @@ # ---------------------------------- # Environment: redis # ---------------------------------- -FROM redis:5-bullseye +FROM --platform=$TARGETOS/$TARGETARCH redis:5-bullseye LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" diff --git a/redis/6/Dockerfile b/redis/6/Dockerfile index 547dd17..6e253e4 100644 --- a/redis/6/Dockerfile +++ b/redis/6/Dockerfile @@ -1,7 +1,7 @@ # ---------------------------------- # Environment: redis # ---------------------------------- -FROM redis:6-bullseye +FROM --platform=$TARGETOS/$TARGETARCH redis:6-bullseye LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" From a93590f3a1b01ce56fe0e9efca93470e02bdbb59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emil=20Gardstr=C3=B6m?= Date: Tue, 1 Feb 2022 22:48:21 +0100 Subject: [PATCH 13/65] change startup parsing to eval done for similar reason as 2e366792c15eba443cea2b7ea38abf396d9f9c31 --- java/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/entrypoint.sh b/java/entrypoint.sh index 012d126..b6d29da 100644 --- a/java/entrypoint.sh +++ b/java/entrypoint.sh @@ -46,4 +46,4 @@ PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat # from the container itself. printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED" # shellcheck disable=SC2086 -exec env ${PARSED} +eval ${PARSED} From c6d043d91bfe4160a768c450c2d9303c523e58ab Mon Sep 17 00:00:00 2001 From: gOOvER Date: Thu, 3 Feb 2022 17:26:39 +0100 Subject: [PATCH 14/65] update repo url to debian 11 --- dotnet/2.1/Dockerfile | 2 +- dotnet/3.1/Dockerfile | 2 +- dotnet/5/Dockerfile | 2 +- dotnet/6/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dotnet/2.1/Dockerfile b/dotnet/2.1/Dockerfile index f5167b6..f85a2c4 100644 --- a/dotnet/2.1/Dockerfile +++ b/dotnet/2.1/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ diff --git a/dotnet/3.1/Dockerfile b/dotnet/3.1/Dockerfile index b63d1a1..1dae74c 100644 --- a/dotnet/3.1/Dockerfile +++ b/dotnet/3.1/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ diff --git a/dotnet/5/Dockerfile b/dotnet/5/Dockerfile index 7a3d14b..934d73e 100644 --- a/dotnet/5/Dockerfile +++ b/dotnet/5/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ diff --git a/dotnet/6/Dockerfile b/dotnet/6/Dockerfile index 8731c4c..38307bd 100644 --- a/dotnet/6/Dockerfile +++ b/dotnet/6/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ From face79057c1b5387b4c0e77ce1ba94836d7a8e12 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Thu, 3 Feb 2022 17:28:54 +0100 Subject: [PATCH 15/65] undo commit --- dotnet/2.1/Dockerfile | 2 +- dotnet/3.1/Dockerfile | 2 +- dotnet/5/Dockerfile | 2 +- dotnet/6/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dotnet/2.1/Dockerfile b/dotnet/2.1/Dockerfile index f85a2c4..f5167b6 100644 --- a/dotnet/2.1/Dockerfile +++ b/dotnet/2.1/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ diff --git a/dotnet/3.1/Dockerfile b/dotnet/3.1/Dockerfile index 1dae74c..b63d1a1 100644 --- a/dotnet/3.1/Dockerfile +++ b/dotnet/3.1/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ diff --git a/dotnet/5/Dockerfile b/dotnet/5/Dockerfile index 934d73e..7a3d14b 100644 --- a/dotnet/5/Dockerfile +++ b/dotnet/5/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ diff --git a/dotnet/6/Dockerfile b/dotnet/6/Dockerfile index 38307bd..8731c4c 100644 --- a/dotnet/6/Dockerfile +++ b/dotnet/6/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ From 7caf182f27bec37cf0b5de839f54d6cd67a4f641 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Thu, 3 Feb 2022 17:32:47 +0100 Subject: [PATCH 16/65] update repo url to debian 11 (#42) --- dotnet/2.1/Dockerfile | 2 +- dotnet/3.1/Dockerfile | 2 +- dotnet/5/Dockerfile | 2 +- dotnet/6/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dotnet/2.1/Dockerfile b/dotnet/2.1/Dockerfile index f5167b6..f85a2c4 100644 --- a/dotnet/2.1/Dockerfile +++ b/dotnet/2.1/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ diff --git a/dotnet/3.1/Dockerfile b/dotnet/3.1/Dockerfile index b63d1a1..1dae74c 100644 --- a/dotnet/3.1/Dockerfile +++ b/dotnet/3.1/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ diff --git a/dotnet/5/Dockerfile b/dotnet/5/Dockerfile index 7a3d14b..934d73e 100644 --- a/dotnet/5/Dockerfile +++ b/dotnet/5/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ diff --git a/dotnet/6/Dockerfile b/dotnet/6/Dockerfile index 8731c4c..38307bd 100644 --- a/dotnet/6/Dockerfile +++ b/dotnet/6/Dockerfile @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update -y \ && apt upgrade -y \ && apt install -y apt-transport-https wget iproute2 \ - && wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ && apt update -y \ From ab9fecc7641240bcbb72a5db0e14b5a5ed0c3a15 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sat, 19 Feb 2022 16:45:52 +0100 Subject: [PATCH 17/65] feat: add altv game image (#43) --- .github/workflows/games.yml | 1 + README.md | 2 ++ games/altv/Dockerfile | 31 +++++++++++++++++++++++++++++++ games/altv/entrypoint.sh | 12 ++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 games/altv/Dockerfile create mode 100644 games/altv/entrypoint.sh diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index 4ca3a3a..2a84791 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -16,6 +16,7 @@ jobs: fail-fast: false matrix: game: + - altv - arma3 - source steps: diff --git a/README.md b/README.md index c3578f3..9d54cf5 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,8 @@ is tagged correctly. ### [Games](/games) +* [`altv`](/games/altv) + * `ghcr.io/parkervcp/games:altv` * [`arma3`](/games/arma3) * `ghcr.io/parkervcp/games:arma3` * [`source`](/games/source) diff --git a/games/altv/Dockerfile b/games/altv/Dockerfile new file mode 100644 index 0000000..0063e6f --- /dev/null +++ b/games/altv/Dockerfile @@ -0,0 +1,31 @@ +# ---------------------------------- +# Environment: debian +# ---------------------------------- +FROM node:16-bullseye + +LABEL author="goover" maintainer="info@goover.de" + +ENV DEBIAN_FRONTEND noninteractive + +RUN useradd -m -d /home/container -s /bin/bash container + +RUN apt update -y \ + && apt upgrade -y \ + && apt install -y gcc g++ libgcc-s1 lib32gcc-s1 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 \ + libfontconfig1 libicu67 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadb-dev libduktape205 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates tzdata \ + python3 dnsutils build-essential coreutils jq pcregrep + +RUN wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && dpkg -i packages-microsoft-prod.deb \ + && apt update -y \ + && apt install -y dotnet-sdk-5.0 dotnet-sdk-6.0 libgdiplus + +RUN update-locale lang=en_US.UTF-8 \ + && dpkg-reconfigure --frontend noninteractive locales + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/games/altv/entrypoint.sh b/games/altv/entrypoint.sh new file mode 100644 index 0000000..d9f5b44 --- /dev/null +++ b/games/altv/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo -e ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} \ No newline at end of file From 2c88875951f77a574b7823bb9632572f294d82b2 Mon Sep 17 00:00:00 2001 From: Manuel Dielacher <31390939+Th3Dilli@users.noreply.github.com> Date: Sat, 19 Feb 2022 17:06:21 +0100 Subject: [PATCH 18/65] feat: add mohaa game image (#12) --- oses/debian/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oses/debian/Dockerfile b/oses/debian/Dockerfile index e7a48ba..d1c5293 100644 --- a/oses/debian/Dockerfile +++ b/oses/debian/Dockerfile @@ -20,7 +20,7 @@ RUN apt update \ ## Install dependencies RUN 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 libicu67 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadbclient-dev-compat libduktape205 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates \ - liblua5.3-0 libz-dev rapidjson-dev tzdata libevent-dev libzip4 + liblua5.3-0 libz-dev rapidjson-dev tzdata libevent-dev libzip4 lib32stdc++6 libstdc++5:i386 ## Configure locale RUN update-locale lang=en_US.UTF-8 \ From dd3b6473396c29a09ca6bbf6a5a1017b9064ed36 Mon Sep 17 00:00:00 2001 From: Manuel Dielacher <31390939+Th3Dilli@users.noreply.github.com> Date: Sat, 19 Feb 2022 17:06:21 +0100 Subject: [PATCH 19/65] Revert "feat: add mohaa game image (#12)" Failed Pull request with no support for multiarch. This reverts commit 2c88875951f77a574b7823bb9632572f294d82b2. --- oses/debian/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oses/debian/Dockerfile b/oses/debian/Dockerfile index d1c5293..e7a48ba 100644 --- a/oses/debian/Dockerfile +++ b/oses/debian/Dockerfile @@ -20,7 +20,7 @@ RUN apt update \ ## Install dependencies RUN 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 libicu67 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadbclient-dev-compat libduktape205 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates \ - liblua5.3-0 libz-dev rapidjson-dev tzdata libevent-dev libzip4 lib32stdc++6 libstdc++5:i386 + liblua5.3-0 libz-dev rapidjson-dev tzdata libevent-dev libzip4 ## Configure locale RUN update-locale lang=en_US.UTF-8 \ From 80bb87e8cbaf829bb2eb216b8fc4bd72b9821502 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Wed, 23 Feb 2022 16:02:00 -0500 Subject: [PATCH 20/65] make sure db images use correct entrypoint --- mariadb/10.3/Dockerfile | 2 +- mariadb/10.4/Dockerfile | 2 +- mariadb/10.5/Dockerfile | 2 +- mariadb/10.6/Dockerfile | 2 +- mariadb/10.7/Dockerfile | 2 +- postgres/10/Dockerfile | 2 +- postgres/11/Dockerfile | 2 +- postgres/12/Dockerfile | 2 +- postgres/13/Dockerfile | 2 +- postgres/14/Dockerfile | 2 +- postgres/9/Dockerfile | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/mariadb/10.3/Dockerfile b/mariadb/10.3/Dockerfile index ef1ea23..17d80fe 100644 --- a/mariadb/10.3/Dockerfile +++ b/mariadb/10.3/Dockerfile @@ -15,5 +15,5 @@ USER container ENV USER=container HOME=/home/container WORKDIR /home/container -COPY ./entrypoint.sh /entrypoint.sh +COPY ../entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/mariadb/10.4/Dockerfile b/mariadb/10.4/Dockerfile index 5f0193c..83673e0 100644 --- a/mariadb/10.4/Dockerfile +++ b/mariadb/10.4/Dockerfile @@ -15,5 +15,5 @@ USER container ENV USER=container HOME=/home/container WORKDIR /home/container -COPY ./entrypoint.sh /entrypoint.sh +COPY ../entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/mariadb/10.5/Dockerfile b/mariadb/10.5/Dockerfile index f990e81..0bbf825 100644 --- a/mariadb/10.5/Dockerfile +++ b/mariadb/10.5/Dockerfile @@ -15,5 +15,5 @@ USER container ENV USER=container HOME=/home/container WORKDIR /home/container -COPY ./entrypoint.sh /entrypoint.sh +COPY ../entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/mariadb/10.6/Dockerfile b/mariadb/10.6/Dockerfile index e4adf95..ea443ca 100644 --- a/mariadb/10.6/Dockerfile +++ b/mariadb/10.6/Dockerfile @@ -15,5 +15,5 @@ USER container ENV USER=container HOME=/home/container WORKDIR /home/container -COPY ./entrypoint.sh /entrypoint.sh +COPY ../entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/mariadb/10.7/Dockerfile b/mariadb/10.7/Dockerfile index f05b006..667aa81 100644 --- a/mariadb/10.7/Dockerfile +++ b/mariadb/10.7/Dockerfile @@ -15,5 +15,5 @@ USER container ENV USER=container HOME=/home/container WORKDIR /home/container -COPY ./entrypoint.sh /entrypoint.sh +COPY ../entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/10/Dockerfile b/postgres/10/Dockerfile index 44467e1..1a2c09d 100644 --- a/postgres/10/Dockerfile +++ b/postgres/10/Dockerfile @@ -12,5 +12,5 @@ USER container ENV HOME /home/container WORKDIR /home/container -COPY ./entrypoint.sh /entrypoint.sh +COPY ../entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/11/Dockerfile b/postgres/11/Dockerfile index 7b0b6a0..4ed6f38 100644 --- a/postgres/11/Dockerfile +++ b/postgres/11/Dockerfile @@ -12,5 +12,5 @@ USER container ENV HOME /home/container WORKDIR /home/container -COPY ./entrypoint.sh /entrypoint.sh +COPY ../entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/12/Dockerfile b/postgres/12/Dockerfile index ee9075e..e21d236 100644 --- a/postgres/12/Dockerfile +++ b/postgres/12/Dockerfile @@ -12,5 +12,5 @@ USER container ENV HOME /home/container WORKDIR /home/container -COPY ./entrypoint.sh /entrypoint.sh +COPY ../entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/13/Dockerfile b/postgres/13/Dockerfile index 9d6d418..ed1d229 100644 --- a/postgres/13/Dockerfile +++ b/postgres/13/Dockerfile @@ -12,5 +12,5 @@ USER container ENV HOME /home/container WORKDIR /home/container -COPY ./entrypoint.sh /entrypoint.sh +COPY ../entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/14/Dockerfile b/postgres/14/Dockerfile index 77c1fee..c41ec76 100644 --- a/postgres/14/Dockerfile +++ b/postgres/14/Dockerfile @@ -12,5 +12,5 @@ USER container ENV HOME /home/container WORKDIR /home/container -COPY ./entrypoint.sh /entrypoint.sh +COPY ../entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/postgres/9/Dockerfile b/postgres/9/Dockerfile index c410d10..fc94f1c 100644 --- a/postgres/9/Dockerfile +++ b/postgres/9/Dockerfile @@ -12,5 +12,5 @@ USER container ENV HOME /home/container WORKDIR /home/container -COPY ./entrypoint.sh /entrypoint.sh +COPY ../entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] From 1e037c37d1493b8ddb72e4bcb015b82d29dda281 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sat, 12 Mar 2022 18:21:17 +0100 Subject: [PATCH 21/65] feat(wine): Mono 7.1 and HTTPS DL url (#46) --- wine/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine/entrypoint.sh b/wine/entrypoint.sh index c98e308..3ee92c7 100644 --- a/wine/entrypoint.sh +++ b/wine/entrypoint.sh @@ -64,7 +64,7 @@ if [[ $WINETRICKS_RUN =~ mono ]]; then WINETRICKS_RUN=${WINETRICKS_RUN/mono} if [ ! -f "$WINEPREFIX/mono.msi" ]; then - wget -q -O $WINEPREFIX/mono.msi http://dl.winehq.org/wine/wine-mono/6.4.0/wine-mono-6.4.0-x86.msi + wget -q -O $WINEPREFIX/mono.msi https://dl.winehq.org/wine/wine-mono/7.1.1/wine-mono-7.1.1-x86.msi fi wine msiexec /i $WINEPREFIX/mono.msi /qn /quiet /norestart /log $WINEPREFIX/mono_install.log From 5fd5db9c81f3b3058f50afac5ecbd65cfb209bb9 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 13 Mar 2022 11:46:58 +0100 Subject: [PATCH 22/65] Update ALTV The image was broken , It spit out a error: `[09:00:13][Error] Error loading "libcsharp-module.so", Unix error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: Version `GLIBCXX_3.4.26' not found (required by /home/container/modules/libcsharp-module.so)` --- games/altv/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/games/altv/Dockerfile b/games/altv/Dockerfile index 0063e6f..a71b4ca 100644 --- a/games/altv/Dockerfile +++ b/games/altv/Dockerfile @@ -11,7 +11,7 @@ RUN useradd -m -d /home/container -s /bin/bash container RUN apt update -y \ && apt upgrade -y \ - && apt install -y gcc g++ libgcc-s1 lib32gcc-s1 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 \ + && apt install -y g++ gcc libgcc-s1 lib32gcc-s1 gdb libstdc++6 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 \ libfontconfig1 libicu67 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadb-dev libduktape205 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates tzdata \ python3 dnsutils build-essential coreutils jq pcregrep From 9b2a7384bd1094dd86773824b5061cce754ea4c9 Mon Sep 17 00:00:00 2001 From: Th3Dilli Date: Sun, 13 Mar 2022 11:57:42 +0100 Subject: [PATCH 23/65] add mohaa image based on debian --- .github/workflows/games.yml | 3 ++- games/mohaa/Dockerfile | 12 ++++++++++++ games/mohaa/entrypoint.sh | 12 ++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 games/mohaa/Dockerfile create mode 100644 games/mohaa/entrypoint.sh diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index 2a84791..246e2ed 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -19,6 +19,7 @@ jobs: - altv - arma3 - source + - mohaa steps: - uses: actions/checkout@v2 - uses: docker/setup-buildx-action@v1 @@ -37,4 +38,4 @@ jobs: platforms: linux/amd64 push: true tags: | - ghcr.io/parkervcp/games:${{ matrix.game }} + ghcr.io/parkervcp/games:${{ matrix.game }} diff --git a/games/mohaa/Dockerfile b/games/mohaa/Dockerfile new file mode 100644 index 0000000..353d28e --- /dev/null +++ b/games/mohaa/Dockerfile @@ -0,0 +1,12 @@ +FROM ghcr.io/parkervcp/yolks:debian + +LABEL author="Manuel Dielacher" maintainer="th3dilli@gmx.at" + +LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" +LABEL org.opencontainers.image.licenses=MIT + +RUN dpkg --add-architecture i386 \ + && apt update && apt upgrade -y \ + && apt install -y lib32gcc-s1 lib32stdc++6 libstdc++5:i386 + + diff --git a/games/mohaa/entrypoint.sh b/games/mohaa/entrypoint.sh new file mode 100644 index 0000000..13d9e20 --- /dev/null +++ b/games/mohaa/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo -e ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} From 3c8acf91ce7a42e8926342c4855497f668f76a7e Mon Sep 17 00:00:00 2001 From: Th3Dilli Date: Sun, 13 Mar 2022 12:12:01 +0100 Subject: [PATCH 24/65] add image to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9d54cf5..32fe62b 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,8 @@ is tagged correctly. * `ghcr.io/parkervcp/games:arma3` * [`source`](/games/source) * `ghcr.io/parkervcp/games:source` +* [`mohaa`](games/mohaa) + * `ghcr.io/pterodactyl/games:mohaa` ### [Golang](/go) From d268ce3f5a794f8ea113dd57619210dfd1322a1d Mon Sep 17 00:00:00 2001 From: Th3Dilli Date: Sun, 13 Mar 2022 12:16:30 +0100 Subject: [PATCH 25/65] rm debian changes --- oses/debian/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oses/debian/Dockerfile b/oses/debian/Dockerfile index d1c5293..e7a48ba 100644 --- a/oses/debian/Dockerfile +++ b/oses/debian/Dockerfile @@ -20,7 +20,7 @@ RUN apt update \ ## Install dependencies RUN 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 libicu67 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadbclient-dev-compat libduktape205 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates \ - liblua5.3-0 libz-dev rapidjson-dev tzdata libevent-dev libzip4 lib32stdc++6 libstdc++5:i386 + liblua5.3-0 libz-dev rapidjson-dev tzdata libevent-dev libzip4 ## Configure locale RUN update-locale lang=en_US.UTF-8 \ From 1769dffa3182cce467de8494ab8853fb0a44b17b Mon Sep 17 00:00:00 2001 From: IAmSilK Date: Wed, 23 Mar 2022 17:57:29 -0300 Subject: [PATCH 26/65] Add optional mods environment variable which allows for downloading mods without requiring them from clients --- games/arma3/entrypoint.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/games/arma3/entrypoint.sh b/games/arma3/entrypoint.sh index ecfb182..9414605 100644 --- a/games/arma3/entrypoint.sh +++ b/games/arma3/entrypoint.sh @@ -20,7 +20,7 @@ RED='\033[0;31m' NC='\033[0m' # No Color ## === ENVIRONMENT VARS === -# STARTUP, STARTUP_PARAMS, STEAM_USER, STEAM_PASS, SERVER_BINARY, MOD_FILE, MODIFICATIONS, SERVERMODS, UPDATE_SERVER, CLEAR_CACHE, VALIDATE_SERVER, MODS_LOWERCASE, STEAMCMD_EXTRA_FLAGS, CDLC, STEAMCMD_APPID, HC_NUM, SERVER_PASSWORD, HC_HIDE, STEAMCMD_ATTEMPTS, BASIC_URL, DISABLE_MOD_UPDATES +# STARTUP, STARTUP_PARAMS, STEAM_USER, STEAM_PASS, SERVER_BINARY, MOD_FILE, MODIFICATIONS, SERVERMODS, OPTIONALMODS, UPDATE_SERVER, CLEAR_CACHE, VALIDATE_SERVER, MODS_LOWERCASE, STEAMCMD_EXTRA_FLAGS, CDLC, STEAMCMD_APPID, HC_NUM, SERVER_PASSWORD, HC_HIDE, STEAMCMD_ATTEMPTS, BASIC_URL, DISABLE_MOD_UPDATES ## === GLOBAL VARS === # validateServer, extraFlags, updateAttempt, modifiedStartup, allMods, CLIENT_MODS @@ -183,6 +183,11 @@ if [[ -n ${SERVERMODS} ]] && [[ ${SERVERMODS} != *\; ]]; then # Add server mods else allMods=${SERVERMODS} fi +if [[ -n ${OPTIONALMODS} ]] && [[ ${OPTIONALMODS} != *\; ]]; then # Add manually specified mods to the client-side mods list, while checking for trailing semicolon + allMods+="${OPTIONALMODS};" +else + allMods+=${OPTIONALMODS} +fi allMods+=$CLIENT_MODS # Add all client-side mods to the master mod list CLIENT_MODS=$(RemoveDuplicates ${CLIENT_MODS}) # Remove duplicate mods from CLIENT_MODS, if present allMods=$(RemoveDuplicates ${allMods}) # Remove duplicate mods from allMods, if present From e79e8cdd4d764a045e0481f84c6ba273d448ab2d Mon Sep 17 00:00:00 2001 From: IAmSilK Date: Fri, 25 Mar 2022 01:50:24 -0300 Subject: [PATCH 27/65] Ensure optional mods files are deleted after downloading and keys are removed if an optional mod is unconfigured --- games/arma3/entrypoint.sh | 68 +++++++++++++++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 6 deletions(-) diff --git a/games/arma3/entrypoint.sh b/games/arma3/entrypoint.sh index 9414605..31b19fd 100644 --- a/games/arma3/entrypoint.sh +++ b/games/arma3/entrypoint.sh @@ -28,7 +28,7 @@ NC='\033[0m' # No Color ## === DEFINE FUNCTIONS === # # Runs SteamCMD with specified variables and performs error handling. -function RunSteamCMD { #[Input: int server=0 mod=1; int id] +function RunSteamCMD { #[Input: int server=0 mod=1 optional_mod=2; int id] # Clear previous SteamCMD log if [[ -f "${STEAMCMD_LOG}" ]]; then rm -f "${STEAMCMD_LOG:?}" @@ -110,7 +110,23 @@ function RunSteamCMD { #[Input: int server=0 mod=1; int id] ModsLowercase @$2 # Move any .bikey's to the keys directory echo -e "\tMoving any mod ${CYAN}.bikey${NC} files to the ${CYAN}~/keys/${NC} folder..." - find ./@$2 -name "*.bikey" -type f -exec cp {} ./keys \; + if [[ $1 == 1 ]]; then + find ./@$2 -name "*.bikey" -type f -exec cp {} ./keys \; + else + # Give optional mod keys a custom name which can be checked later for deleting unconfigured mods + for file in $(find ./@$2 -name "*.bikey" -type f); do + filename=$(basename ${file}) + + cp $file ./keys/optional_$2_${filename} + + done; + + echo -e "\tMod with ID $2 is an optional mod. Deleting original mod download folder..." + rm -r ./@$2 + + # Recreate a directory so time-based detection of auto updates works correctly + mkdir ./@$2_optional + fi echo -e "${GREEN}[UPDATE]: Mod download/update successful!${NC}" fi break @@ -183,7 +199,7 @@ if [[ -n ${SERVERMODS} ]] && [[ ${SERVERMODS} != *\; ]]; then # Add server mods else allMods=${SERVERMODS} fi -if [[ -n ${OPTIONALMODS} ]] && [[ ${OPTIONALMODS} != *\; ]]; then # Add manually specified mods to the client-side mods list, while checking for trailing semicolon +if [[ -n ${OPTIONALMODS} ]] && [[ ${OPTIONALMODS} != *\; ]]; then # Add specified optional mods to the mods list, while checking for trailing semicolon allMods+="${OPTIONALMODS};" else allMods+=${OPTIONALMODS} @@ -228,16 +244,28 @@ if [[ ${UPDATE_SERVER} == 1 ]]; then for modID in $(echo $allMods | sed -e 's/@//g') do if [[ $modID =~ ^[0-9]+$ ]]; then # Only check mods that are in ID-form + # If a mod is defined in OPTIONALMODS, and is not defined in CLIENT_MODS or SERVERMODS, then treat as an optional mod + # Optional mods are given a different directory which is checked to see if a new update is available. This is to ensure + # if an optional mod is switched to be a standard client-side mod, this script will redownload the mod + if [[ "${OPTIONALMODS}" == *"@${modID};"* ]] && [[ "${CLIENT_MODS}" != *"@${modID};"* ]] && [[ "${SERVERMODS}" != *"@${modID};"* ]]; then + modType=2 + modDir=@${modID}_optional + else + modType=1 + modDir=@${modID} + fi + # Get mod's latest update in epoch time from its Steam Workshop changelog page latestUpdate=$(curl -sL https://steamcommunity.com/sharedfiles/filedetails/changelog/$modID | grep '

$(find @$modID | head -1 | xargs stat -c%Y) ) ]]; then + if [[ ! -d $modDir ]] || [[ ( -n $latestUpdate ) && ( $latestUpdate =~ ^[0-9]+$ ) && ( $latestUpdate > $(find $modDir | head -1 | xargs stat -c%Y) ) ]]; then # Get the mod's name from the Workshop page as well modName=$(curl -sL https://steamcommunity.com/sharedfiles/filedetails/changelog/$modID | grep 'workshopItemTitle' | cut -d'>' -f2 | cut -d'<' -f1) if [[ -z $modName ]]; then # Set default name if unavailable modName="[NAME UNAVAILABLE]" fi - if [[ ! -d @$modID ]]; then + if [[ ! -d $modDir ]]; then echo -e "\n${GREEN}[UPDATE]:${NC} Downloading new Mod: \"${CYAN}${modName}${NC}\" (${CYAN}${modID}${NC})" else echo -e "\n${GREEN}[UPDATE]:${NC} Mod update found for: \"${CYAN}${modName}${NC}\" (${CYAN}${modID}${NC})" @@ -246,10 +274,38 @@ if [[ ${UPDATE_SERVER} == 1 ]]; then echo -e "\tMod was last updated: ${CYAN}$(date -d @${latestUpdate})${NC}" fi echo -e "\tAttempting mod update/download via SteamCMD...\n" - RunSteamCMD 1 $modID + + RunSteamCMD $modType $modID fi fi done + + # Check over key files for unconfigured optional mods' .bikey files + for keyFile in $(find ./keys -name "*.bikey" -type f); do + keyFileName=$(basename ${keyFile}) + + # If the key file is using the optional mod file name + if [[ "${keyFileName}" == "optional_"* ]]; then + modID=$(echo "${keyFileName}" | cut -d _ -f 2) + + # If mod is not in optional mods, delete it + # If a mod is configured in CLIENT_MODS or SERVERMODS, we should still delete this file + # as a new file will have been copied that does not follow the naming scheme + if [[ "${OPTIONALMODS}" != *"@${modID};"* ]]; then + + # We only need to let the user know the key file is being deleted if this mod is no longer configured at all. + # If CLIENT_MODS contains the mod ID, we'd just confuse the user by telling them we are deleting the optional .bikey file + if [[ "${CLIENT_MODS}" != *"@${modID};"* ]]; then + echo -e "\tKey file and directory for unconfigured optional mod ${CYAN}${modID}${NC} is being deleted..." + fi + + # Delete the optional mod .bikey file and directory + rm ${keyFile} + rmdir ./@${modID}_optional 2> /dev/null + fi + fi + done; + echo -e "${GREEN}[UPDATE]:${NC} Steam Workshop mod update check ${GREEN}complete${NC}!" fi fi From b99d99e233855e44e4dc22f01f7c9ed78ededa33 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 26 Mar 2022 17:41:49 +0200 Subject: [PATCH 28/65] feat(arma): install tzdata resolves #50 --- games/arma3/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/games/arma3/Dockerfile b/games/arma3/Dockerfile index 922cdb6..49ec2a8 100644 --- a/games/arma3/Dockerfile +++ b/games/arma3/Dockerfile @@ -11,7 +11,7 @@ RUN dpkg --add-architecture i386 \ && apt-get update \ && apt-get upgrade -y \ && apt-get install -y libgcc-10-dev libstdc++-10-dev libtinfo5 lib64z1 libcurl3-gnutls \ - && apt-get install -y libnss-wrapper gettext-base tar curl gcc g++ libc6 libtbb2 lib32z1 lib32gcc1 lib32stdc++6 libsdl2-2.0-0 libsdl2-2.0-0:i386 libtbb2:i386 lib32stdc++6 libtinfo5:i386 libncurses5:i386 libcurl3-gnutls:i386 \ + && apt-get install -y libnss-wrapper gettext-base tar curl gcc g++ libc6 libtbb2 lib32z1 lib32gcc1 lib32stdc++6 libsdl2-2.0-0 libsdl2-2.0-0:i386 libtbb2:i386 lib32stdc++6 libtinfo5:i386 libncurses5:i386 libcurl3-gnutls:i386 tzdata \ && useradd -m -d /home/container -s /bin/bash container \ && touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ && chgrp 0 ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ From fb6c0dcf56d215337ab797d48bd6ffd2dbc5327f Mon Sep 17 00:00:00 2001 From: CDE90 Date: Sun, 17 Apr 2022 16:16:14 +0100 Subject: [PATCH 29/65] Add rust language --- .github/workflows/rust.yml | 43 ++++++++++++++++++++++++++++++++++++++ rust/1.31/Dockerfile | 14 +++++++++++++ rust/1.56/Dockerfile | 14 +++++++++++++ rust/1.60/Dockerfile | 14 +++++++++++++ rust/entrypoint.sh | 15 +++++++++++++ rust/latest/Dockerfile | 14 +++++++++++++ 6 files changed, 114 insertions(+) create mode 100644 .github/workflows/rust.yml create mode 100644 rust/1.31/Dockerfile create mode 100644 rust/1.56/Dockerfile create mode 100644 rust/1.60/Dockerfile create mode 100644 rust/entrypoint.sh create mode 100644 rust/latest/Dockerfile diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..99d04f3 --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,43 @@ +name: build rust +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * 1" + push: + branches: + - master + paths: + - rust/** +jobs: + push: + name: "yolks:rust_${{ matrix.tag }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tag: + - '1.31' + - '1.56' + - '1.60' + - 'latest' + steps: + - uses: actions/checkout@v2 + # Setup QEMU for ARM64 Build + - uses: docker/setup-qemu-action@v1 + - uses: docker/setup-buildx-action@v1 + with: + version: "v0.5.1" + buildkitd-flags: --debug + - uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.REGISTRY_TOKEN }} + - uses: docker/build-push-action@v2 + with: + context: ./rust + file: ./rust/${{ matrix.tag }}/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/parkervcp/yolks:rust_${{ matrix.tag }} diff --git a/rust/1.31/Dockerfile b/rust/1.31/Dockerfile new file mode 100644 index 0000000..840bc9f --- /dev/null +++ b/rust/1.31/Dockerfile @@ -0,0 +1,14 @@ +FROM --platform=$TARGETOS/$TARGETARCH rust:1.31-slim + +LABEL author="Ethan Coward" maintainer="ethan.coward@icloud.com" + +RUN apt update \ + && apt -y install git dnsutils curl iproute2 ffmpeg \ + && useradd -m -d /home/container container + +USER container +ENV USER=container HOME=/home/container CARGO_HOME=/home/container/.cargo +WORKDIR /home/container + +COPY ./../entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file diff --git a/rust/1.56/Dockerfile b/rust/1.56/Dockerfile new file mode 100644 index 0000000..9d3bed6 --- /dev/null +++ b/rust/1.56/Dockerfile @@ -0,0 +1,14 @@ +FROM --platform=$TARGETOS/$TARGETARCH rust:1.56-slim + +LABEL author="Ethan Coward" maintainer="ethan.coward@icloud.com" + +RUN apt update \ + && apt -y install git dnsutils curl iproute2 ffmpeg \ + && useradd -m -d /home/container container + +USER container +ENV USER=container HOME=/home/container CARGO_HOME=/home/container/.cargo +WORKDIR /home/container + +COPY ./../entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file diff --git a/rust/1.60/Dockerfile b/rust/1.60/Dockerfile new file mode 100644 index 0000000..5624cc2 --- /dev/null +++ b/rust/1.60/Dockerfile @@ -0,0 +1,14 @@ +FROM --platform=$TARGETOS/$TARGETARCH rust:1.60-slim + +LABEL author="Ethan Coward" maintainer="ethan.coward@icloud.com" + +RUN apt update \ + && apt -y install git dnsutils curl iproute2 ffmpeg \ + && useradd -m -d /home/container container + +USER container +ENV USER=container HOME=/home/container CARGO_HOME=/home/container/.cargo +WORKDIR /home/container + +COPY ./../entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file diff --git a/rust/entrypoint.sh b/rust/entrypoint.sh new file mode 100644 index 0000000..ed8bce1 --- /dev/null +++ b/rust/entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Print current Rust version +cargo --version + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e $(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')) +echo -e ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} diff --git a/rust/latest/Dockerfile b/rust/latest/Dockerfile new file mode 100644 index 0000000..3d94aeb --- /dev/null +++ b/rust/latest/Dockerfile @@ -0,0 +1,14 @@ +FROM --platform=$TARGETOS/$TARGETARCH rust:slim + +LABEL author="Ethan Coward" maintainer="ethan.coward@icloud.com" + +RUN apt update \ + && apt -y install git dnsutils curl iproute2 ffmpeg \ + && useradd -m -d /home/container container + +USER container +ENV USER=container HOME=/home/container CARGO_HOME=/home/container/.cargo +WORKDIR /home/container + +COPY ./../entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file From e889a1e143ea512a90da7c0e5f4eee86b8f6a565 Mon Sep 17 00:00:00 2001 From: CDE90 Date: Sun, 17 Apr 2022 16:19:55 +0100 Subject: [PATCH 30/65] Update README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 9d54cf5..59361ca 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,17 @@ is tagged correctly. * [`Redis 6`](/redis/6) * `ghcr.io/parkervcp/yolks:redis_6` +### [Rust](/rust) + +* ['rust1.31'](/rust/1.31) + * `ghcr.io/parkervcp/yolks:rust_1.31` +* ['rust1.56'](/rust/1.56) + * `ghcr.io/parkervcp/yolks:rust_1.56` +* ['rust1.60'](/rust/1.60) + * `ghcr.io/parkervcp/yolks:rust_1.60` +* ['rust latest'](/rust/latest) + * `ghcr.io/parkervcp/yolks:rust_latest` + ### [Voice](/voice) * [`TeaSpeak`](/teaspeak) From bc57e78b0c369b406eff36839f7dfd095ca7ee01 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 22 Apr 2022 07:36:18 +0200 Subject: [PATCH 31/65] add nodejs18 --- .github/workflows/nodejs.yml | 1 + nodejs/18/Dockerfile | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 nodejs/18/Dockerfile diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 179c8b5..8bf5235 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -20,6 +20,7 @@ jobs: - 14 - 16 - 17 + - 18 steps: - uses: actions/checkout@v2 # Setup QEMU for ARM64 Build diff --git a/nodejs/18/Dockerfile b/nodejs/18/Dockerfile new file mode 100644 index 0000000..8ce29ce --- /dev/null +++ b/nodejs/18/Dockerfile @@ -0,0 +1,15 @@ +FROM --platform=$TARGETOS/$TARGETARCH node:18-bullseye-slim + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +RUN apt update \ + && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool \ + && npm -g install npm@latest \ + && 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" ] From 91cba2e3e52b5947e1777999e338a93857b7bfb8 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 22 Apr 2022 07:38:43 +0200 Subject: [PATCH 32/65] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9d54cf5..8726abc 100644 --- a/README.md +++ b/README.md @@ -140,6 +140,8 @@ is tagged correctly. * `ghcr.io/parkervcp/yolks:nodejs_16` * [`node17`](/nodejs/17) * `ghcr.io/parkervcp/yolks:nodejs_17` +* [`node18`](/nodejs/18) + * `ghcr.io/parkervcp/yolks:nodejs_18` ### [PostgreSQL](/postgres) * [`Postgres 9`](/postgres/9) From cd6b94986888030898f126fc1ce1ff977c80a82b Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 24 Apr 2022 18:10:20 +0300 Subject: [PATCH 33/65] fix: invalid INTERNAL_IP environment value New IP route output appends UID to the result, causing the value to be set to that instead of the IP. Fix it by ignoring the last two appended UID results --- bot/bastion/entrypoint.sh | 5 +++-- bot/parkertron/entrypoint.sh | 5 +++-- bot/red/entrypoint.sh | 7 ++++--- bot/sinusbot/entrypoint.sh | 5 +++-- cassandra/entrypoint.sh | 2 +- dotnet/entrypoint.sh | 5 +++-- erlang/entrypoint.sh | 2 +- games/altv/entrypoint.sh | 7 ++++--- games/arma3/entrypoint.sh | 27 ++++++++++++++++----------- games/source/entrypoint.sh | 2 +- go/entrypoint.sh | 4 ++-- java/entrypoint.sh | 2 +- mariadb/entrypoint.sh | 3 ++- mongodb/entrypoint.sh | 3 ++- mono/entrypoint.sh | 3 ++- nodejs/entrypoint.sh | 3 ++- oses/alpine/entrypoint.sh | 4 ++-- oses/debian/entrypoint.sh | 7 ++++--- oses/ubuntu/entrypoint.sh | 5 +++-- postgres/entrypoint.sh | 3 ++- python/entrypoint.sh | 3 ++- redis/entrypoint.sh | 3 ++- rust/entrypoint.sh | 3 ++- voice/teaspeak/entrypoint.sh | 2 +- wine/entrypoint.sh | 3 ++- 25 files changed, 70 insertions(+), 48 deletions(-) diff --git a/bot/bastion/entrypoint.sh b/bot/bastion/entrypoint.sh index 06c0ce9..d5bdcc7 100644 --- a/bot/bastion/entrypoint.sh +++ b/bot/bastion/entrypoint.sh @@ -1,8 +1,9 @@ #!/bin/bash cd /home/container -# Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +# Set environment variable that holds the Internal Docker IP +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=$(echo -e $(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')) diff --git a/bot/parkertron/entrypoint.sh b/bot/parkertron/entrypoint.sh index c39e96c..1971986 100644 --- a/bot/parkertron/entrypoint.sh +++ b/bot/parkertron/entrypoint.sh @@ -1,8 +1,9 @@ #!/bin/ash cd /home/container -# Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +# Set environment variable that holds the Internal Docker IP +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` diff --git a/bot/red/entrypoint.sh b/bot/red/entrypoint.sh index cdb1fd1..d5bdcc7 100644 --- a/bot/red/entrypoint.sh +++ b/bot/red/entrypoint.sh @@ -1,12 +1,13 @@ #!/bin/bash cd /home/container -# Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +# Set environment variable that holds the Internal Docker IP +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=$(echo -e $(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')) echo -e ":/home/container$ ${MODIFIED_STARTUP}" # Run the Server -eval ${MODIFIED_STARTUP} \ No newline at end of file +eval ${MODIFIED_STARTUP} diff --git a/bot/sinusbot/entrypoint.sh b/bot/sinusbot/entrypoint.sh index 33e5ddc..d0aea75 100644 --- a/bot/sinusbot/entrypoint.sh +++ b/bot/sinusbot/entrypoint.sh @@ -1,8 +1,9 @@ #!/bin/bash cd /home/container -# Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +# Set environment variable that holds the Internal Docker IP +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` diff --git a/cassandra/entrypoint.sh b/cassandra/entrypoint.sh index 3df1092..2541719 100644 --- a/cassandra/entrypoint.sh +++ b/cassandra/entrypoint.sh @@ -5,7 +5,7 @@ TZ=${TZ:-UTC} export TZ # Set environment variable that holds the Internal Docker IP -INTERNAL_IP=$(ip route get 1 | awk '{print $NF;exit}') +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') export INTERNAL_IP # Switch to the container's working directory diff --git a/dotnet/entrypoint.sh b/dotnet/entrypoint.sh index 13d9e20..11acd70 100644 --- a/dotnet/entrypoint.sh +++ b/dotnet/entrypoint.sh @@ -1,8 +1,9 @@ #!/bin/bash cd /home/container -# Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +# Set environment variable that holds the Internal Docker IP +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') diff --git a/erlang/entrypoint.sh b/erlang/entrypoint.sh index 6875d24..7511c57 100644 --- a/erlang/entrypoint.sh +++ b/erlang/entrypoint.sh @@ -3,7 +3,7 @@ TZ=${TZ:-UTC} export TZ # Set environment variable that holds the Internal Docker IP -INTERNAL_IP=$(ip route get 1 | awk '{print $NF;exit}') +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') export INTERNAL_IP # Switch to the container's working directory diff --git a/games/altv/entrypoint.sh b/games/altv/entrypoint.sh index d9f5b44..11acd70 100644 --- a/games/altv/entrypoint.sh +++ b/games/altv/entrypoint.sh @@ -1,12 +1,13 @@ #!/bin/bash cd /home/container -# Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +# Set environment variable that holds the Internal Docker IP +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') echo -e ":/home/container$ ${MODIFIED_STARTUP}" # Run the Server -eval ${MODIFIED_STARTUP} \ No newline at end of file +eval ${MODIFIED_STARTUP} diff --git a/games/arma3/entrypoint.sh b/games/arma3/entrypoint.sh index 31b19fd..d01b9a4 100644 --- a/games/arma3/entrypoint.sh +++ b/games/arma3/entrypoint.sh @@ -33,24 +33,24 @@ function RunSteamCMD { #[Input: int server=0 mod=1 optional_mod=2; int id] if [[ -f "${STEAMCMD_LOG}" ]]; then rm -f "${STEAMCMD_LOG:?}" fi - + updateAttempt=0 while (( $updateAttempt < $STEAMCMD_ATTEMPTS )); do # Loop for specified number of attempts # Increment attempt counter updateAttempt=$((updateAttempt+1)) - + if (( $updateAttempt > 1 )); then # Notify if not first attempt echo -e "\t${YELLOW}Re-Attempting download/update in 3 seconds...${NC} (Attempt ${CYAN}${updateAttempt}${NC} of ${CYAN}${STEAMCMD_ATTEMPTS}${NC})\n" sleep 3 fi - + # Check if updating server or mod if [[ $1 == 0 ]]; then # Server ${STEAMCMD_DIR}/steamcmd.sh +force_install_dir /home/container "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +app_update $2 $extraFlags $validateServer +quit | tee -a "${STEAMCMD_LOG}" else # Mod ${STEAMCMD_DIR}/steamcmd.sh "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +workshop_download_item $GAME_ID $2 +quit | tee -a "${STEAMCMD_LOG}" fi - + # Error checking for SteamCMD steamcmdExitCode=${PIPESTATUS[0]} if [[ -n $(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL") ]]; then # Catch errors (ignore setlocale and SDL warnings) @@ -166,6 +166,11 @@ function RemoveDuplicates { #[Input: str - Output: printf of new str] } # === ENTRYPOINT START === + +# Set environment variable that holds the Internal Docker IP +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP + cd /home/container sleep 1 @@ -213,17 +218,17 @@ allMods=$(echo $allMods | sed -e 's/;/ /g') # Convert from string to array if [[ ${UPDATE_SERVER} == 1 ]]; then echo -e "\n${GREEN}[STARTUP]: ${CYAN}Starting checks for all updates...${NC}" echo -e "(It is okay to ignore any \"SDL\" errors during this process)\n" - + ## Update game server echo -e "${GREEN}[UPDATE]:${NC} Checking for game server updates with App ID: ${CYAN}${STEAMCMD_APPID}${NC}..." - + if [[ ${VALIDATE_SERVER} == 1 ]]; then # Validate will be added as a parameter if specified echo -e "\t${CYAN}File validation enabled.${NC} (This may take extra time to complete)" validateServer="validate" else validateServer="" fi - + # Determine what extra flags should be set if [[ -n ${STEAMCMD_EXTRA_FLAGS} ]]; then echo -e "\t(${YELLOW}Advanced${NC}) Extra SteamCMD flags specified: ${CYAN}${STEAMCMD_EXTRA_FLAGS}${NC}\n" @@ -235,9 +240,9 @@ if [[ ${UPDATE_SERVER} == 1 ]]; then echo -e "" extraFlags="" fi - + RunSteamCMD 0 ${STEAMCMD_APPID} - + ## Update mods if [[ -n $allMods ]] && [[ ${DISABLE_MOD_UPDATES} != 1 ]]; then echo -e "\n${GREEN}[UPDATE]:${NC} Checking all ${CYAN}Steam Workshop mods${NC} for updates..." @@ -274,7 +279,7 @@ if [[ ${UPDATE_SERVER} == 1 ]]; then echo -e "\tMod was last updated: ${CYAN}$(date -d @${latestUpdate})${NC}" fi echo -e "\tAttempting mod update/download via SteamCMD...\n" - + RunSteamCMD $modType $modID fi fi @@ -298,7 +303,7 @@ if [[ ${UPDATE_SERVER} == 1 ]]; then if [[ "${CLIENT_MODS}" != *"@${modID};"* ]]; then echo -e "\tKey file and directory for unconfigured optional mod ${CYAN}${modID}${NC} is being deleted..." fi - + # Delete the optional mod .bikey file and directory rm ${keyFile} rmdir ./@${modID}_optional 2> /dev/null diff --git a/games/source/entrypoint.sh b/games/source/entrypoint.sh index f2f2744..8f43bc9 100644 --- a/games/source/entrypoint.sh +++ b/games/source/entrypoint.sh @@ -30,7 +30,7 @@ TZ=${TZ:-UTC} export TZ # Set environment variable that holds the Internal Docker IP -INTERNAL_IP=$(ip route get 1 | awk '{print $NF;exit}') +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') export INTERNAL_IP # Switch to the container's working directory diff --git a/go/entrypoint.sh b/go/entrypoint.sh index ab6fbe7..7adafec 100644 --- a/go/entrypoint.sh +++ b/go/entrypoint.sh @@ -20,14 +20,14 @@ # 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;exit}') +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') export INTERNAL_IP # Switch to the container's working directory diff --git a/java/entrypoint.sh b/java/entrypoint.sh index b6d29da..e92f3d3 100644 --- a/java/entrypoint.sh +++ b/java/entrypoint.sh @@ -27,7 +27,7 @@ TZ=${TZ:-UTC} export TZ # Set environment variable that holds the Internal Docker IP -INTERNAL_IP=$(ip route get 1 | awk '{print $NF;exit}') +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') export INTERNAL_IP # Switch to the container's working directory diff --git a/mariadb/entrypoint.sh b/mariadb/entrypoint.sh index cd80a9a..d3884d4 100644 --- a/mariadb/entrypoint.sh +++ b/mariadb/entrypoint.sh @@ -2,7 +2,8 @@ cd /home/container # Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=$(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') diff --git a/mongodb/entrypoint.sh b/mongodb/entrypoint.sh index cd80a9a..d3884d4 100644 --- a/mongodb/entrypoint.sh +++ b/mongodb/entrypoint.sh @@ -2,7 +2,8 @@ cd /home/container # Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=$(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') diff --git a/mono/entrypoint.sh b/mono/entrypoint.sh index ef6ae2e..fe2d5f6 100644 --- a/mono/entrypoint.sh +++ b/mono/entrypoint.sh @@ -2,7 +2,8 @@ cd /home/container # Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP="eval $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')" diff --git a/nodejs/entrypoint.sh b/nodejs/entrypoint.sh index 440c2bf..60c2279 100644 --- a/nodejs/entrypoint.sh +++ b/nodejs/entrypoint.sh @@ -2,7 +2,8 @@ cd /home/container # Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Print Node.js Version node -v diff --git a/oses/alpine/entrypoint.sh b/oses/alpine/entrypoint.sh index 5b4ce5f..e156de6 100644 --- a/oses/alpine/entrypoint.sh +++ b/oses/alpine/entrypoint.sh @@ -18,14 +18,14 @@ # 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;exit}') +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') export INTERNAL_IP # Switch to the container's working directory diff --git a/oses/debian/entrypoint.sh b/oses/debian/entrypoint.sh index 9a5cab5..461e6b9 100644 --- a/oses/debian/entrypoint.sh +++ b/oses/debian/entrypoint.sh @@ -1,12 +1,13 @@ #!/bin/bash cd /home/container -# Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +# Make internal Docker IP address available to processes. +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') echo -e ":/home/container$ ${MODIFIED_STARTUP}" # Run the Server -eval ${MODIFIED_STARTUP} \ No newline at end of file +eval ${MODIFIED_STARTUP} diff --git a/oses/ubuntu/entrypoint.sh b/oses/ubuntu/entrypoint.sh index d9f5b44..461e6b9 100644 --- a/oses/ubuntu/entrypoint.sh +++ b/oses/ubuntu/entrypoint.sh @@ -2,11 +2,12 @@ cd /home/container # Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') echo -e ":/home/container$ ${MODIFIED_STARTUP}" # Run the Server -eval ${MODIFIED_STARTUP} \ No newline at end of file +eval ${MODIFIED_STARTUP} diff --git a/postgres/entrypoint.sh b/postgres/entrypoint.sh index 0a72c42..53b47f4 100644 --- a/postgres/entrypoint.sh +++ b/postgres/entrypoint.sh @@ -5,7 +5,8 @@ cd /home/container postgres --version # Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` diff --git a/python/entrypoint.sh b/python/entrypoint.sh index 0a7b93d..aab4aea 100644 --- a/python/entrypoint.sh +++ b/python/entrypoint.sh @@ -2,7 +2,8 @@ cd /home/container # Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Print current Python version python --version diff --git a/redis/entrypoint.sh b/redis/entrypoint.sh index e0ae99e..6e19f17 100644 --- a/redis/entrypoint.sh +++ b/redis/entrypoint.sh @@ -2,7 +2,8 @@ cd /home/container # Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') diff --git a/rust/entrypoint.sh b/rust/entrypoint.sh index ed8bce1..c865f6c 100644 --- a/rust/entrypoint.sh +++ b/rust/entrypoint.sh @@ -2,7 +2,8 @@ cd /home/container # Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Print current Rust version cargo --version diff --git a/voice/teaspeak/entrypoint.sh b/voice/teaspeak/entrypoint.sh index 49123df..9b0d21f 100644 --- a/voice/teaspeak/entrypoint.sh +++ b/voice/teaspeak/entrypoint.sh @@ -3,7 +3,7 @@ TZ=${TZ:-UTC} export TZ # Set environment variable that holds the Internal Docker IP -INTERNAL_IP=$(ip route get 1 | awk '{print $NF;exit}') +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') export INTERNAL_IP # Switch to the container's working directory diff --git a/wine/entrypoint.sh b/wine/entrypoint.sh index 3ee92c7..be33420 100644 --- a/wine/entrypoint.sh +++ b/wine/entrypoint.sh @@ -7,7 +7,8 @@ echo "Current timezone: $(cat /etc/timezone)" wine --version # Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP ## just in case someone removed the defaults. if [ "${STEAM_USER}" == "" ]; then From 70e5a4321ac4db5f541f0c254a9fc6434fbe866e Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 2 May 2022 17:30:09 +0200 Subject: [PATCH 34/65] add samp image --- .github/workflows/games.yml | 1 + README.md | 2 ++ games/samp/Dockerfile | 23 +++++++++++++++++++++++ games/samp/entrypoint.sh | 12 ++++++++++++ 4 files changed, 38 insertions(+) create mode 100644 games/samp/Dockerfile create mode 100644 games/samp/entrypoint.sh diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index 2a84791..53e7d85 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -19,6 +19,7 @@ jobs: - altv - arma3 - source + - samp steps: - uses: actions/checkout@v2 - uses: docker/setup-buildx-action@v1 diff --git a/README.md b/README.md index fa04efe..b6aef34 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,8 @@ is tagged correctly. * `ghcr.io/parkervcp/games:arma3` * [`source`](/games/source) * `ghcr.io/parkervcp/games:source` +* [`samp`](/games/samp) + * `ghcr.io/parkervcp/games:samp` ### [Golang](/go) diff --git a/games/samp/Dockerfile b/games/samp/Dockerfile new file mode 100644 index 0000000..3e05c2f --- /dev/null +++ b/games/samp/Dockerfile @@ -0,0 +1,23 @@ +FROM --platform=$BUILDPLATFORM debian:bullseye-slim + +LABEL author="QuintenQVD" maintainer="josdekurk@gmail.com" + +RUN apt update \ + && apt -y upgrade +RUN dpkg --add-architecture i386 \ + && apt update \ + && apt upgrade -y \ + && apt install -y libstdc++6 lib32stdc++6 tar curl iproute2 openssl fontconfig dirmngr ca-certificates dnsutils tzdata zip \ + && apt install -y libtbb2:i386 libtbb-dev:i386 libicu-dev:i386 tzdata \ + && useradd -d /home/container -m container + +RUN mkdir -p /run/systemd && echo 'docker' > /run/systemd/container +RUN rm -rf /var/lib/apt/lists/* + + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] \ No newline at end of file diff --git a/games/samp/entrypoint.sh b/games/samp/entrypoint.sh new file mode 100644 index 0000000..6dda5e5 --- /dev/null +++ b/games/samp/entrypoint.sh @@ -0,0 +1,12 @@ +#!/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}'` + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo -e ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} From 73a2340b3be9ffc1b540eb1d1a90eada3cca8a28 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 2 May 2022 17:54:08 +0200 Subject: [PATCH 35/65] fix alphabetical orde --- .github/workflows/games.yml | 3 ++- README.md | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index 53e7d85..d4ec133 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -18,8 +18,9 @@ jobs: game: - altv - arma3 - - source - samp + - source + steps: - uses: actions/checkout@v2 - uses: docker/setup-buildx-action@v1 diff --git a/README.md b/README.md index b6aef34..e0ddbbe 100644 --- a/README.md +++ b/README.md @@ -79,10 +79,11 @@ is tagged correctly. * `ghcr.io/parkervcp/games:altv` * [`arma3`](/games/arma3) * `ghcr.io/parkervcp/games:arma3` +* [`samp`](/games/samp) + * `ghcr.io/parkervcp/games:samp` * [`source`](/games/source) * `ghcr.io/parkervcp/games:source` -* [`samp`](/games/samp) - * `ghcr.io/parkervcp/games:samp` + ### [Golang](/go) From bb84c74981cf488bd03b88c5d1234b86e5b55a11 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 3 May 2022 07:06:37 +0200 Subject: [PATCH 36/65] Fix double tzdata install --- games/samp/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/games/samp/Dockerfile b/games/samp/Dockerfile index 3e05c2f..e1b5ff4 100644 --- a/games/samp/Dockerfile +++ b/games/samp/Dockerfile @@ -8,7 +8,7 @@ RUN dpkg --add-architecture i386 \ && apt update \ && apt upgrade -y \ && apt install -y libstdc++6 lib32stdc++6 tar curl iproute2 openssl fontconfig dirmngr ca-certificates dnsutils tzdata zip \ - && apt install -y libtbb2:i386 libtbb-dev:i386 libicu-dev:i386 tzdata \ + && apt install -y libtbb2:i386 libtbb-dev:i386 libicu-dev:i386 \ && useradd -d /home/container -m container RUN mkdir -p /run/systemd && echo 'docker' > /run/systemd/container @@ -20,4 +20,4 @@ ENV USER=container HOME=/home/container WORKDIR /home/container COPY ./entrypoint.sh /entrypoint.sh -CMD [ "/bin/bash", "/entrypoint.sh" ] \ No newline at end of file +CMD [ "/bin/bash", "/entrypoint.sh" ] From ad792dc52157a95ea096e7df824a520c6ac2fdad Mon Sep 17 00:00:00 2001 From: Th3Dilli Date: Fri, 13 May 2022 21:14:43 +0200 Subject: [PATCH 37/65] fix alphabetical order --- .github/workflows/games.yml | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index 246e2ed..0dc24d1 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -18,8 +18,8 @@ jobs: game: - altv - arma3 - - source - mohaa + - source steps: - uses: actions/checkout@v2 - uses: docker/setup-buildx-action@v1 diff --git a/README.md b/README.md index 32fe62b..65d0fbb 100644 --- a/README.md +++ b/README.md @@ -79,10 +79,10 @@ is tagged correctly. * `ghcr.io/parkervcp/games:altv` * [`arma3`](/games/arma3) * `ghcr.io/parkervcp/games:arma3` -* [`source`](/games/source) - * `ghcr.io/parkervcp/games:source` * [`mohaa`](games/mohaa) * `ghcr.io/pterodactyl/games:mohaa` +* [`source`](/games/source) + * `ghcr.io/parkervcp/games:source` ### [Golang](/go) From 8fed9ba30679e1fd73b7759a674525a30d05de9b Mon Sep 17 00:00:00 2001 From: Th3Dilli Date: Fri, 13 May 2022 21:15:33 +0200 Subject: [PATCH 38/65] apply INTERNAL_IP fix --- games/mohaa/entrypoint.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/games/mohaa/entrypoint.sh b/games/mohaa/entrypoint.sh index 13d9e20..11acd70 100644 --- a/games/mohaa/entrypoint.sh +++ b/games/mohaa/entrypoint.sh @@ -1,8 +1,9 @@ #!/bin/bash cd /home/container -# Make internal Docker IP address available to processes. -export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` +# Set environment variable that holds the Internal Docker IP +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') From 8d8151b30422845855e93684e7ef91eb02e198d8 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 18 May 2022 18:16:20 +0200 Subject: [PATCH 39/65] update wine-mono --- wine/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine/entrypoint.sh b/wine/entrypoint.sh index be33420..2066497 100644 --- a/wine/entrypoint.sh +++ b/wine/entrypoint.sh @@ -65,7 +65,7 @@ if [[ $WINETRICKS_RUN =~ mono ]]; then WINETRICKS_RUN=${WINETRICKS_RUN/mono} if [ ! -f "$WINEPREFIX/mono.msi" ]; then - wget -q -O $WINEPREFIX/mono.msi https://dl.winehq.org/wine/wine-mono/7.1.1/wine-mono-7.1.1-x86.msi + wget -q -O $WINEPREFIX/mono.msi https://dl.winehq.org/wine/wine-mono/7.2.0/wine-mono-7.2.0-x86.msi fi wine msiexec /i $WINEPREFIX/mono.msi /qn /quiet /norestart /log $WINEPREFIX/mono_install.log From e750a642c92933b15f7921325820d1569642a4a5 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Sun, 22 May 2022 17:35:03 -0700 Subject: [PATCH 40/65] Arma 3 Image Cleanup & Refurbishment Files: - Remove dependency of having `libnss_wrapper.so` libraries directly in the image. Instead, use the libraries provided with their respective packages. This fixes the current 32-bit version being broken and ensures the libraries stay up to date with their respective packages. - Slight change to passwd.template to accommodate variable name change. Dockerfile: - Change the base image to Debian, which from testing appears to run cleaner and faster for Arma. It also should yield a smaller image. - Fix depreciated `ENV` call format. - Removed un-needed packages. - Added iproute2 package. - Consolidated the NSS Wrapper setup to a commented group of lines to make understanding it's purpose and setup more clear. - Added shell flag to `useradd` command. Entrypoint: - General cleanup. - Changed `LD_PRELOAD`s to point to package-provided library file locations. --- games/arma3/Dockerfile | 52 +++++++++++++++++++++--------- games/arma3/entrypoint.sh | 19 ++++++----- games/arma3/libnss_wrapper.so | Bin 55040 -> 0 bytes games/arma3/libnss_wrapper_x64.so | Bin 56048 -> 0 bytes games/arma3/passwd.template | 2 +- 5 files changed, 49 insertions(+), 24 deletions(-) delete mode 100644 games/arma3/libnss_wrapper.so delete mode 100644 games/arma3/libnss_wrapper_x64.so diff --git a/games/arma3/Dockerfile b/games/arma3/Dockerfile index 49ec2a8..428b7d2 100644 --- a/games/arma3/Dockerfile +++ b/games/arma3/Dockerfile @@ -1,29 +1,51 @@ -FROM ubuntu:20.04 +FROM --platform=$BUILDPLATFORM debian:stable-slim LABEL author="David Wolfe (Red-Thirten)" maintainer="rehlmgaming@gmail.com" -ENV DEBIAN_FRONTEND noninteractive -ENV USER_NAME container -ENV NSS_WRAPPER_PASSWD /tmp/passwd -ENV NSS_WRAPPER_GROUP /tmp/group -# Install Dependencies +LABEL org.opencontainers.image.source="https://github.com/parkervcp/yolks" +LABEL org.opencontainers.image.licenses=MIT + +## Update base packages and install dependencies +ENV DEBIAN_FRONTEND=noninteractive RUN dpkg --add-architecture i386 \ && apt-get update \ && apt-get upgrade -y \ - && apt-get install -y libgcc-10-dev libstdc++-10-dev libtinfo5 lib64z1 libcurl3-gnutls \ - && apt-get install -y libnss-wrapper gettext-base tar curl gcc g++ libc6 libtbb2 lib32z1 lib32gcc1 lib32stdc++6 libsdl2-2.0-0 libsdl2-2.0-0:i386 libtbb2:i386 lib32stdc++6 libtinfo5:i386 libncurses5:i386 libcurl3-gnutls:i386 tzdata \ - && useradd -m -d /home/container -s /bin/bash container \ - && touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ + && apt-get install -y \ + curl \ + tzdata \ + locales \ + iproute2 \ + gettext-base \ + ca-certificates \ + libssl-dev \ + lib32gcc-s1 \ + libsdl2-2.0-0 \ + libsdl2-2.0-0:i386 \ + libstdc++6 \ + libstdc++6:i386 \ + lib32stdc++6 \ + libnss-wrapper \ + libnss-wrapper:i386 \ + libtbb2 \ + libtbb2:i386 + +## Configure locale +RUN update-locale lang=en_US.UTF-8 \ + && dpkg-reconfigure --frontend noninteractive locales + +## Prepare NSS Wrapper for the entrypoint as a workaround for Arma 3 requiring a valid UID +ENV NSS_WRAPPER_PASSWD=/tmp/passwd NSS_WRAPPER_GROUP=/tmp/group +RUN touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ && chgrp 0 ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ && chmod g+rw ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} - ADD passwd.template /passwd.template +## Setup user and working directory +RUN useradd -m -d /home/container -s /bin/bash container USER container -ENV HOME /home/container +ENV USER=container HOME=/home/container WORKDIR /home/container -COPY ./libnss_wrapper.so /libnss_wrapper.so -COPY ./libnss_wrapper_x64.so /libnss_wrapper_x64.so +## Copy over and execute entrypoint.sh COPY ./entrypoint.sh /entrypoint.sh -CMD ["/bin/bash", "/entrypoint.sh"] +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/games/arma3/entrypoint.sh b/games/arma3/entrypoint.sh index d01b9a4..b9925d4 100644 --- a/games/arma3/entrypoint.sh +++ b/games/arma3/entrypoint.sh @@ -2,8 +2,8 @@ ## File: Pterodactyl Arma 3 Image - entrypoint.sh ## Author: David Wolfe (Red-Thirten) -## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/) -## Date: 2021/07/13 +## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/), Stephen White (SilK) +## Date: 2022/05/22 ## License: MIT License ## === CONSTANTS === @@ -167,12 +167,15 @@ function RemoveDuplicates { #[Input: str - Output: printf of new str] # === ENTRYPOINT START === +# Wait for the container to fully initialize +sleep 1 + # Set environment variable that holds the Internal Docker IP INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') export INTERNAL_IP -cd /home/container -sleep 1 +# Switch to the container's working directory +cd /home/container || exit 1 # Check for old eggs if [[ -z ${VALIDATE_SERVER} ]]; then # VALIDATE_SERVER was not in the previous version @@ -350,15 +353,15 @@ if [[ ! -f ./basic.cfg ]]; then curl -sSL ${BASIC_URL} -o ./basic.cfg fi -# $NSS_WRAPPER_PASSWD and $NSS_WRAPPER_GROUP have been set by the Dockerfile +# Setup NSS Wrapper for use ($NSS_WRAPPER_PASSWD and $NSS_WRAPPER_GROUP have been set by the Dockerfile) export USER_ID=$(id -u) export GROUP_ID=$(id -g) envsubst < /passwd.template > ${NSS_WRAPPER_PASSWD} -if [[ ${SERVER_BINARY} == *"x64"* ]]; then # Check which libnss_wrapper architecture to run, based off the server binary name - export LD_PRELOAD=/libnss_wrapper_x64.so +if [[ ${SERVER_BINARY} == *"x64"* ]]; then # Check which libnss-wrapper architecture to run, based off the server binary name + export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss_wrapper.so else - export LD_PRELOAD=/libnss_wrapper.so + export LD_PRELOAD=/usr/lib/i386-linux-gnu/libnss_wrapper.so fi # Replace Startup Variables diff --git a/games/arma3/libnss_wrapper.so b/games/arma3/libnss_wrapper.so deleted file mode 100644 index 8f32e83e9fc396154656aa81070002345193ead9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55040 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 U)Pj4bXK0wrHSqpk!>ZHx5AF@Q9smFU diff --git a/games/arma3/libnss_wrapper_x64.so b/games/arma3/libnss_wrapper_x64.so deleted file mode 100644 index 8f7438a19e1d6ef2b8ad673e6324ade5e0a76469..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56048 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 Date: Sun, 22 May 2022 18:32:49 -0700 Subject: [PATCH 41/65] Initial Upload Currently only works with experimental branch of DayZ Standalone. --- .github/workflows/games.yml | 1 + games/dayz/Dockerfile | 49 +++++++ games/dayz/README.md | 2 + games/dayz/entrypoint.sh | 284 ++++++++++++++++++++++++++++++++++++ games/dayz/passwd.template | 26 ++++ 5 files changed, 362 insertions(+) create mode 100644 games/dayz/Dockerfile create mode 100644 games/dayz/README.md create mode 100644 games/dayz/entrypoint.sh create mode 100644 games/dayz/passwd.template diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index d4ec133..fe85f0f 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -18,6 +18,7 @@ jobs: game: - altv - arma3 + - dayz - samp - source diff --git a/games/dayz/Dockerfile b/games/dayz/Dockerfile new file mode 100644 index 0000000..55d074e --- /dev/null +++ b/games/dayz/Dockerfile @@ -0,0 +1,49 @@ +FROM --platform=$BUILDPLATFORM debian:stable-slim + +LABEL author="David Wolfe (Red-Thirten)" maintainer="rehlmgaming@gmail.com" + +LABEL org.opencontainers.image.source="https://github.com/parkervcp/yolks" +LABEL org.opencontainers.image.licenses=MIT + +## Update base packages and install dependencies +ENV DEBIAN_FRONTEND=noninteractive +RUN dpkg --add-architecture i386 \ + && apt update \ + && apt upgrade -y \ + && apt install -y \ + curl \ + tzdata \ + locales \ + iproute2 \ + gettext-base \ + ca-certificates \ + libssl-dev \ + lib32gcc-s1 \ + libsdl2-2.0-0 \ + libsdl2-2.0-0:i386 \ + libstdc++6 \ + libstdc++6:i386 \ + lib32stdc++6 \ + libcap2 \ + libnss-wrapper + +## Configure locale +RUN update-locale lang=en_US.UTF-8 \ + && dpkg-reconfigure --frontend noninteractive locales + +## Prepare NSS Wrapper for the entrypoint as a workaround for Arma 3 requiring a valid UID +ENV NSS_WRAPPER_PASSWD=/tmp/passwd NSS_WRAPPER_GROUP=/tmp/group +RUN touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ + && chgrp 0 ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ + && chmod g+rw ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} +ADD passwd.template /passwd.template + +## Setup user and working directory +RUN useradd -m -d /home/container -s /bin/bash container +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +## Copy over and execute entrypoint.sh +COPY ./entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/games/dayz/README.md b/games/dayz/README.md new file mode 100644 index 0000000..f13724e --- /dev/null +++ b/games/dayz/README.md @@ -0,0 +1,2 @@ +# DayZ +Docker container designed to run Bohemia Interactive's DayZ dedicated server. diff --git a/games/dayz/entrypoint.sh b/games/dayz/entrypoint.sh new file mode 100644 index 0000000..080b372 --- /dev/null +++ b/games/dayz/entrypoint.sh @@ -0,0 +1,284 @@ +#!/bin/bash + +## File: Pterodactyl DayZ SA Image - entrypoint.sh +## Author: David Wolfe (Red-Thirten) +## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/), Stephen White (SilK) +## Date: 2022/05/22 +## License: MIT License + +## === CONSTANTS === +STEAMCMD_DIR="./steamcmd" # SteamCMD's directory containing steamcmd.sh +STEAMCMD_LOG="${STEAMCMD_DIR}/steamcmd.log" # Log file for SteamCMD +GAME_ID=221100 # SteamCMD ID for the DayZ SA GAME (not server). Only used for Workshop mod downloads. + +# Color Codes +CYAN='\033[0;36m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +RED='\033[0;31m' +NC='\033[0m' # No Color + +## === ENVIRONMENT VARS === +# STARTUP, STARTUP_PARAMS, STEAM_USER, STEAM_PASS, SERVER_BINARY, MOD_FILE, MODIFICATIONS, SERVERMODS, UPDATE_SERVER, VALIDATE_SERVER, MODS_LOWERCASE, STEAMCMD_EXTRA_FLAGS, STEAMCMD_APPID, SERVER_PASSWORD, STEAMCMD_ATTEMPTS, DISABLE_MOD_UPDATES + +## === GLOBAL VARS === +# validateServer, extraFlags, updateAttempt, modifiedStartup, allMods, CLIENT_MODS + +## === DEFINE FUNCTIONS === + +# Runs SteamCMD with specified variables and performs error handling. +function RunSteamCMD { #[Input: int server=0 mod=1; int id] + # Clear previous SteamCMD log + if [[ -f "${STEAMCMD_LOG}" ]]; then + rm -f "${STEAMCMD_LOG:?}" + fi + + updateAttempt=0 + while (( $updateAttempt < $STEAMCMD_ATTEMPTS )); do # Loop for specified number of attempts + # Increment attempt counter + updateAttempt=$((updateAttempt+1)) + + if (( $updateAttempt > 1 )); then # Notify if not first attempt + echo -e "\t${YELLOW}Re-Attempting download/update in 3 seconds...${NC} (Attempt ${CYAN}${updateAttempt}${NC} of ${CYAN}${STEAMCMD_ATTEMPTS}${NC})\n" + sleep 3 + fi + + # Check if updating server or mod + if [[ $1 == 0 ]]; then # Server + ${STEAMCMD_DIR}/steamcmd.sh +force_install_dir /home/container "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +app_update $2 $extraFlags $validateServer +quit | tee -a "${STEAMCMD_LOG}" + else # Mod + ${STEAMCMD_DIR}/steamcmd.sh "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +workshop_download_item $GAME_ID $2 +quit | tee -a "${STEAMCMD_LOG}" + fi + + # Error checking for SteamCMD + steamcmdExitCode=${PIPESTATUS[0]} + if [[ -n $(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL") ]]; then # Catch errors (ignore setlocale and SDL warnings) + # Soft errors + if [[ -n $(grep -i "Timeout downloading item" "${STEAMCMD_LOG}") ]]; then # Mod download timeout + echo -e "\n${YELLOW}[UPDATE]: ${NC}Timeout downloading Steam Workshop mod: \"${CYAN}${modName}${NC}\" (${CYAN}${2}${NC})" + echo -e "\t(This is expected for particularly large mods)" + elif [[ -n $(grep -i "0x402\|0x6\|0x602" "${STEAMCMD_LOG}") ]]; then # Connection issue with Steam + echo -e "\n${YELLOW}[UPDATE]: ${NC}Connection issue with Steam servers." + echo -e "\t(Steam servers may currently be down, or a connection cannot be made reliably)" + # Hard errors + elif [[ -n $(grep -i "Password check for AppId" "${STEAMCMD_LOG}") ]]; then # Incorrect beta branch password + echo -e "\n${RED}[UPDATE]: ${YELLOW}Incorrect password given for beta branch. ${CYAN}Skipping download...${NC}" + echo -e "\t(Check your \"[ADVANCED] EXTRA FLAGS FOR STEAMCMD\" startup parameter)" + break + # Fatal errors + elif [[ -n $(grep -i "Invalid Password\|two-factor\|No subscription" "${STEAMCMD_LOG}") ]]; then # Wrong username/password, Steam Guard is turned on, or host is using anonymous account + echo -e "\n${RED}[UPDATE]: Cannot login to Steam - Improperly configured account and/or credentials" + echo -e "\t${YELLOW}Please contact your administrator/host and give them the following message:${NC}" + echo -e "\t${CYAN}Your Egg, or your client's server, is not configured with valid Steam credentials.${NC}" + echo -e "\t${CYAN}Either the username/password is wrong, or Steam Guard is not properly configured\n\taccording to this egg's documentation/README.${NC}\n" + exit 1 + elif [[ -n $(grep -i "Download item" "${STEAMCMD_LOG}") ]]; then # Steam account does not own base game for mod downloads, or unknown + echo -e "\n${RED}[UPDATE]: Cannot download mod - Download failed" + echo -e "\t${YELLOW}While unknown, this error is likely due to your host's Steam account not owning the base game.${NC}" + echo -e "\t${YELLOW}(Please contact your administrator/host if this issue persists)${NC}\n" + exit 1 + elif [[ -n $(grep -i "0x202\|0x212" "${STEAMCMD_LOG}") ]]; then # Not enough disk space + echo -e "\n${RED}[UPDATE]: Unable to complete download - Not enough storage" + echo -e "\t${YELLOW}You have run out of your allotted disk space.${NC}" + echo -e "\t${YELLOW}Please contact your administrator/host for potential storage upgrades.${NC}\n" + exit 1 + elif [[ -n $(grep -i "0x606" "${STEAMCMD_LOG}") ]]; then # Disk write failure + echo -e "\n${RED}[UPDATE]: Unable to complete download - Disk write failure" + echo -e "\t${YELLOW}This is normally caused by directory permissions issues,\n\tbut could be a more serious hardware issue.${NC}" + echo -e "\t${YELLOW}(Please contact your administrator/host if this issue persists)${NC}\n" + exit 1 + else # Unknown caught error + echo -e "\n${RED}[UPDATE]: ${YELLOW}An unknown error has occurred with SteamCMD. ${CYAN}Skipping download...${NC}" + echo -e "\t(Please contact your administrator/host if this issue persists)" + break + fi + elif [[ $steamcmdExitCode != 0 ]]; then # Unknown fatal error + echo -e "\n${RED}[UPDATE]: SteamCMD has crashed for an unknown reason!${NC} (Exit code: ${CYAN}${steamcmdExitCode}${NC})" + echo -e "\t${YELLOW}(Please contact your administrator/host for support)${NC}\n" + exit $steamcmdExitCode + else # Success! + if [[ $1 == 0 ]]; then # Server + echo -e "\n${GREEN}[UPDATE]: Game server is up to date!${NC}" + else # Mod + # Move the downloaded mod to the root directory, and replace existing mod if needed + mkdir -p ./@$2 + rm -rf ./@$2/* + mv -f ./Steam/steamapps/workshop/content/$GAME_ID/$2/* ./@$2 + rm -d ./Steam/steamapps/workshop/content/$GAME_ID/$2 + # Make the mods contents all lowercase + ModsLowercase @$2 + # Move any .bikey's to the keys directory + echo -e "\tMoving any mod ${CYAN}.bikey${NC} files to the ${CYAN}~/keys/${NC} folder..." + find ./@$2 -name "*.bikey" -type f -exec cp {} ./keys \; + echo -e "${GREEN}[UPDATE]: Mod download/update successful!${NC}" + fi + break + fi + if (( $updateAttempt == $STEAMCMD_ATTEMPTS )); then # Notify if failed last attempt + if [[ $1 == 0 ]]; then # Server + echo -e "\t${RED}Final attempt made! ${YELLOW}Unable to complete game server update. ${CYAN}Skipping...${NC}" + echo -e "\t(Please try again at a later time)" + sleep 3 + else # Mod + echo -e "\t${RED}Final attempt made! ${YELLOW}Unable to complete mod download/update. ${CYAN}Skipping...${NC}" + echo -e "\t(You may try again later, or manually upload this mod to your server via SFTP)" + sleep 3 + fi + fi + done +} + +# Takes a directory (string) as input, and recursively makes all files & folders lowercase. +function ModsLowercase { + echo -e "\n\tMaking mod ${CYAN}$1${NC} files/folders lowercase..." + for SRC in `find ./$1 -depth` + do + DST=`dirname "${SRC}"`/`basename "${SRC}" | tr '[A-Z]' '[a-z]'` + if [ "${SRC}" != "${DST}" ] + then + [ ! -e "${DST}" ] && mv -T "${SRC}" "${DST}" + fi + done +} + +# Removes duplicate items from a semicolon delimited string +function RemoveDuplicates { #[Input: str - Output: printf of new str] + if [[ -n $1 ]]; then # If nothing to compare, skip to prevent extra semicolon being returned + echo $1 | sed -e 's/;/\n/g' | sort -u | xargs printf '%s;' + fi +} + +## === ENTRYPOINT START === + +# Wait for the container to fully initialize +sleep 1 + +# 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 + +# Collect and parse all specified mods +if [[ -n ${MODIFICATIONS} ]] && [[ ${MODIFICATIONS} != *\; ]]; then # Add manually specified mods to the client-side mods list, while checking for trailing semicolon + CLIENT_MODS="${MODIFICATIONS};" +else + CLIENT_MODS=${MODIFICATIONS} +fi +# If the mod list file exists and is valid, parse and add mods to the client-side mods list +if [[ -f ${MOD_FILE} ]] && [[ -n "$(cat ${MOD_FILE} | grep 'Created by DayZ Launcher')" ]]; then + CLIENT_MODS+=$(cat ${MOD_FILE} | grep 'id=' | cut -d'=' -f3 | cut -d'"' -f1 | xargs printf '@%s;') +elif [[ -n "${MOD_FILE}" ]]; then # If MOD_FILE is not null, warn user file is missing or invalid + echo -e "\n${YELLOW}[STARTUP_WARN]: DayZ Modlist file \"${CYAN}${MOD_FILE}${YELLOW}\" could not be found, or is invalid!${NC}" + echo -e "\tEnsure your uploaded modlist's file name matches your Startup Parameter." + echo -e "\tOnly files exported from a DayZ Launcher are permitted." + if [[ -n "${CLIENT_MODS}" ]]; then + echo -e "\t${CYAN}Reverting to the manual mod list...${NC}" + fi +fi +# Add server mods to the master mods list, while checking for trailing semicolon +if [[ -n ${SERVERMODS} ]] && [[ ${SERVERMODS} != *\; ]]; then + allMods="${SERVERMODS};" +else + allMods=${SERVERMODS} +fi +allMods+=$CLIENT_MODS # Add all client-side mods to the master mod list +CLIENT_MODS=$(RemoveDuplicates ${CLIENT_MODS}) # Remove duplicate mods from CLIENT_MODS, if present +allMods=$(RemoveDuplicates ${allMods}) # Remove duplicate mods from allMods, if present +allMods=$(echo $allMods | sed -e 's/;/ /g') # Convert from string to array + +# Update everything (server and mods), if specified +if [[ ${UPDATE_SERVER} == 1 ]]; then + echo -e "\n${GREEN}[STARTUP]: ${CYAN}Starting checks for all updates...${NC}" + echo -e "(It is okay to ignore any \"SDL\" errors during this process)\n" + + ## Update game server + echo -e "${GREEN}[UPDATE]:${NC} Checking for game server updates with App ID: ${CYAN}${STEAMCMD_APPID}${NC}..." + + if [[ ${VALIDATE_SERVER} == 1 ]]; then # Validate will be added as a parameter if specified + echo -e "\t${CYAN}File validation enabled.${NC} (This may take extra time to complete)" + validateServer="validate" + else + validateServer="" + fi + + # Determine what extra flags should be set + if [[ -n ${STEAMCMD_EXTRA_FLAGS} ]]; then + echo -e "\t(${YELLOW}Advanced${NC}) Extra SteamCMD flags specified: ${CYAN}${STEAMCMD_EXTRA_FLAGS}${NC}\n" + extraFlags=${STEAMCMD_EXTRA_FLAGS} + else + echo -e "" + extraFlags="" + fi + + RunSteamCMD 0 ${STEAMCMD_APPID} + + ## Update mods + if [[ -n $allMods ]] && [[ ${DISABLE_MOD_UPDATES} != 1 ]]; then + echo -e "\n${GREEN}[UPDATE]:${NC} Checking all ${CYAN}Steam Workshop mods${NC} for updates..." + for modID in $(echo $allMods | sed -e 's/@//g') + do + if [[ $modID =~ ^[0-9]+$ ]]; then # Only check mods that are in ID-form + # Get mod's latest update in epoch time from its Steam Workshop changelog page + latestUpdate=$(curl -sL https://steamcommunity.com/sharedfiles/filedetails/changelog/$modID | grep '

$(find @$modID | head -1 | xargs stat -c%Y) ) ]]; then + # Get the mod's name from the Workshop page as well + modName=$(curl -sL https://steamcommunity.com/sharedfiles/filedetails/changelog/$modID | grep 'workshopItemTitle' | cut -d'>' -f2 | cut -d'<' -f1) + if [[ -z $modName ]]; then # Set default name if unavailable + modName="[NAME UNAVAILABLE]" + fi + if [[ ! -d @$modID ]]; then + echo -e "\n${GREEN}[UPDATE]:${NC} Downloading new Mod: \"${CYAN}${modName}${NC}\" (${CYAN}${modID}${NC})" + else + echo -e "\n${GREEN}[UPDATE]:${NC} Mod update found for: \"${CYAN}${modName}${NC}\" (${CYAN}${modID}${NC})" + fi + if [[ -n $latestUpdate ]] && [[ $latestUpdate =~ ^[0-9]+$ ]]; then # Notify last update date, if valid + echo -e "\tMod was last updated: ${CYAN}$(date -d @${latestUpdate})${NC}" + fi + echo -e "\tAttempting mod update/download via SteamCMD...\n" + RunSteamCMD 1 $modID + fi + fi + done + echo -e "${GREEN}[UPDATE]:${NC} Steam Workshop mod update check ${GREEN}complete${NC}!" + fi +fi + +# Check if specified server binary exists. +if [[ ! -f ./${SERVER_BINARY} ]]; then + echo -e "\n${RED}[STARTUP_ERR]: Specified DayZ server binary could not be found in the root directory!${NC}" + echo -e "${YELLOW}Please do the following to resolve this issue:${NC}" + echo -e "\t${CYAN}- Double check your \"Server Binary\" Startup Variable is correct.${NC}" + echo -e "\t${CYAN}- Ensure your server has properly installed/updated without errors (reinstalling/updating again may help).${NC}" + echo -e "\t${CYAN}- Use the File Manager to check that your specified server binary file is not missing from the root directory.${NC}\n" + exit 1 +fi + +# Make mods lowercase, if specified +if [[ ${MODS_LOWERCASE} == "1" ]]; then + for modDir in $allMods + do + ModsLowercase $modDir + done +fi + +# Setup NSS Wrapper for use ($NSS_WRAPPER_PASSWD and $NSS_WRAPPER_GROUP have been set by the Dockerfile) +export USER_ID=$(id -u) +export GROUP_ID=$(id -g) +envsubst < /passwd.template > ${NSS_WRAPPER_PASSWD} +export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss_wrapper.so + +# Replace Startup Variables +modifiedStartup=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` + +# Start the Server +echo -e "\n${GREEN}[STARTUP]:${NC} Starting server with the following startup command:" +echo -e "${CYAN}${modifiedStartup}${NC}\n" +${modifiedStartup} + +if [ $? -ne 0 ]; then + echo -e "\n${RED}PTDL_CONTAINER_ERR: There was an error while attempting to run the start command.${NC}\n" + exit 1 +fi diff --git a/games/dayz/passwd.template b/games/dayz/passwd.template new file mode 100644 index 0000000..2b0dd45 --- /dev/null +++ b/games/dayz/passwd.template @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin +bin:x:2:2:bin:/bin:/usr/sbin/nologin +sys:x:3:3:sys:/dev:/usr/sbin/nologin +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/usr/sbin/nologin +man:x:6:12:man:/var/cache/man:/usr/sbin/nologin +lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin +mail:x:8:8:mail:/var/mail:/usr/sbin/nologin +news:x:9:9:news:/var/spool/news:/usr/sbin/nologin +uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin +proxy:x:13:13:proxy:/bin:/usr/sbin/nologin +www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin +backup:x:34:34:backup:/var/backups:/usr/sbin/nologin +list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin +irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin +nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin +systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false +systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false +systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false +systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false +syslog:x:104:108::/home/syslog:/bin/false +messagebus:x:106:109::/var/run/dbus:/bin/false +bind:x:108:112::/var/cache/bind:/bin/false +${USER}:x:${USER_ID}:${GROUP_ID}:${USER}:${HOME}:/bin/bash \ No newline at end of file From c4c9556772d8dc150d44b84b35bffbd9138a7b8b Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Sun, 22 May 2022 19:15:05 -0700 Subject: [PATCH 42/65] Fix `--platform` FROM flag in Dockerfile --- games/arma3/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/games/arma3/Dockerfile b/games/arma3/Dockerfile index 428b7d2..82ba373 100644 --- a/games/arma3/Dockerfile +++ b/games/arma3/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM debian:stable-slim +FROM --platform=$TARGETOS/$TARGETARCH debian:stable-slim LABEL author="David Wolfe (Red-Thirten)" maintainer="rehlmgaming@gmail.com" From 5e94fc4239047f2e11040be703a88f11fb21a770 Mon Sep 17 00:00:00 2001 From: softwarenoob Date: Mon, 23 May 2022 05:17:41 +0300 Subject: [PATCH 43/65] fix: multi platform builds --- bot/bastion/Dockerfile | 4 ++-- bot/parkertron/Dockerfile | 2 +- bot/red/Dockerfile | 2 +- bot/sinusbot/Dockerfile | 2 +- cassandra/java11_python3/Dockerfile | 2 +- cassandra/java8_python2/Dockerfile | 2 +- dotnet/2.1/Dockerfile | 2 +- dotnet/3.1/Dockerfile | 2 +- dotnet/5/Dockerfile | 2 +- dotnet/6/Dockerfile | 2 +- erlang/22/Dockerfile | 2 +- erlang/23/Dockerfile | 2 +- erlang/24/Dockerfile | 2 +- games/altv/Dockerfile | 4 ++-- games/samp/Dockerfile | 2 +- games/source/Dockerfile | 2 +- go/1.14/Dockerfile | 2 +- go/1.15/Dockerfile | 2 +- go/1.16/Dockerfile | 2 +- installers/alpine/Dockerfile | 2 +- installers/debian/Dockerfile | 4 ++-- voice/teaspeak/Dockerfile | 2 +- 22 files changed, 25 insertions(+), 25 deletions(-) diff --git a/bot/bastion/Dockerfile b/bot/bastion/Dockerfile index 18390f3..00d5508 100644 --- a/bot/bastion/Dockerfile +++ b/bot/bastion/Dockerfile @@ -1,7 +1,7 @@ -FROM node:14-buster +FROM --platform=$TARGETOS/$TARGETARCH node:14-buster LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" - ## install mongo +## install mongo RUN wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add - \ && echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list \ && apt update \ diff --git a/bot/parkertron/Dockerfile b/bot/parkertron/Dockerfile index d87f516..87fc60a 100644 --- a/bot/parkertron/Dockerfile +++ b/bot/parkertron/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.9 +FROM --platform=$TARGETOS/$TARGETARCH alpine:3.9 LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" diff --git a/bot/red/Dockerfile b/bot/red/Dockerfile index 29cf0a9..92f9d98 100644 --- a/bot/red/Dockerfile +++ b/bot/red/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.8-slim +FROM --platform=$TARGETOS/$TARGETARCH python:3.8-slim LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" diff --git a/bot/sinusbot/Dockerfile b/bot/sinusbot/Dockerfile index bbc4a92..63afc17 100644 --- a/bot/sinusbot/Dockerfile +++ b/bot/sinusbot/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:18.04 +FROM --platform=$TARGETOS/$TARGETARCH ubuntu:18.04 LABEL maintainer="ki2007 " version="1.0" diff --git a/cassandra/java11_python3/Dockerfile b/cassandra/java11_python3/Dockerfile index 785ad40..4f5ddb3 100644 --- a/cassandra/java11_python3/Dockerfile +++ b/cassandra/java11_python3/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM adoptopenjdk/openjdk11:alpine-jre +FROM --platform=$TARGETOS/$TARGETARCH adoptopenjdk/openjdk11:alpine-jre LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de" diff --git a/cassandra/java8_python2/Dockerfile b/cassandra/java8_python2/Dockerfile index 1c8260c..32770f4 100644 --- a/cassandra/java8_python2/Dockerfile +++ b/cassandra/java8_python2/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM adoptopenjdk/openjdk8:alpine-jre +FROM --platform=$TARGETOS/$TARGETARCH adoptopenjdk/openjdk8:alpine-jre LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de" diff --git a/dotnet/2.1/Dockerfile b/dotnet/2.1/Dockerfile index f85a2c4..440f50b 100644 --- a/dotnet/2.1/Dockerfile +++ b/dotnet/2.1/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM ghcr.io/parkervcp/yolks:debian +FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian LABEL author="Torsten Widmann" maintainer="info@goover.de" diff --git a/dotnet/3.1/Dockerfile b/dotnet/3.1/Dockerfile index 1dae74c..f655e82 100644 --- a/dotnet/3.1/Dockerfile +++ b/dotnet/3.1/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM ghcr.io/parkervcp/yolks:debian +FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian LABEL author="Torsten Widmann" maintainer="info@goover.de" diff --git a/dotnet/5/Dockerfile b/dotnet/5/Dockerfile index 934d73e..2fe9f19 100644 --- a/dotnet/5/Dockerfile +++ b/dotnet/5/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM ghcr.io/parkervcp/yolks:debian +FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian LABEL author="Torsten Widmann" maintainer="info@goover.de" diff --git a/dotnet/6/Dockerfile b/dotnet/6/Dockerfile index 38307bd..7880a3e 100644 --- a/dotnet/6/Dockerfile +++ b/dotnet/6/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM ghcr.io/parkervcp/yolks:debian +FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian LABEL author="Torsten Widmann" maintainer="info@goover.de" diff --git a/erlang/22/Dockerfile b/erlang/22/Dockerfile index ca64333..c391152 100644 --- a/erlang/22/Dockerfile +++ b/erlang/22/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM erlang:22-alpine +FROM --platform=$TARGETOS/$TARGETARCH erlang:22-alpine LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de" diff --git a/erlang/23/Dockerfile b/erlang/23/Dockerfile index 2349293..10d4cd1 100644 --- a/erlang/23/Dockerfile +++ b/erlang/23/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM erlang:23-alpine +FROM --platform=$TARGETOS/$TARGETARCH erlang:23-alpine LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de" diff --git a/erlang/24/Dockerfile b/erlang/24/Dockerfile index fff015f..ea47ef4 100644 --- a/erlang/24/Dockerfile +++ b/erlang/24/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM erlang:24-alpine +FROM --platform=$TARGETOS/$TARGETARCH erlang:24-alpine LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de" diff --git a/games/altv/Dockerfile b/games/altv/Dockerfile index a71b4ca..1126862 100644 --- a/games/altv/Dockerfile +++ b/games/altv/Dockerfile @@ -1,7 +1,7 @@ # ---------------------------------- # Environment: debian # ---------------------------------- -FROM node:16-bullseye +FROM --platform=$TARGETOS/$TARGETARCH node:16-bullseye LABEL author="goover" maintainer="info@goover.de" @@ -19,7 +19,7 @@ RUN wget https://packages.microsoft.com/config/debian/11/packages-microsoft- && dpkg -i packages-microsoft-prod.deb \ && apt update -y \ && apt install -y dotnet-sdk-5.0 dotnet-sdk-6.0 libgdiplus - + RUN update-locale lang=en_US.UTF-8 \ && dpkg-reconfigure --frontend noninteractive locales diff --git a/games/samp/Dockerfile b/games/samp/Dockerfile index e1b5ff4..3ed3929 100644 --- a/games/samp/Dockerfile +++ b/games/samp/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM debian:bullseye-slim +FROM --platform=$TARGETOS/$TARGETARCH debian:bullseye-slim LABEL author="QuintenQVD" maintainer="josdekurk@gmail.com" diff --git a/games/source/Dockerfile b/games/source/Dockerfile index 617a9f6..3af65bd 100644 --- a/games/source/Dockerfile +++ b/games/source/Dockerfile @@ -20,7 +20,7 @@ # SOFTWARE. # -FROM --platform=$BUILDPLATFORM debian:stable-slim +FROM --platform=$TARGETOS/$TARGETARCH debian:stable-slim LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io" diff --git a/go/1.14/Dockerfile b/go/1.14/Dockerfile index 105e773..285e36b 100644 --- a/go/1.14/Dockerfile +++ b/go/1.14/Dockerfile @@ -20,7 +20,7 @@ # SOFTWARE. # -FROM --platform=$BUILDPLATFORM golang:1.14-alpine +FROM --platform=$TARGETOS/$TARGETARCH golang:1.14-alpine LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io" diff --git a/go/1.15/Dockerfile b/go/1.15/Dockerfile index 50a8531..0279ead 100644 --- a/go/1.15/Dockerfile +++ b/go/1.15/Dockerfile @@ -20,7 +20,7 @@ # SOFTWARE. # -FROM --platform=$BUILDPLATFORM golang:1.15-alpine +FROM --platform=$TARGETOS/$TARGETARCH golang:1.15-alpine LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io" diff --git a/go/1.16/Dockerfile b/go/1.16/Dockerfile index 9855e47..1ab08f3 100644 --- a/go/1.16/Dockerfile +++ b/go/1.16/Dockerfile @@ -20,7 +20,7 @@ # SOFTWARE. # -FROM --platform=$BUILDPLATFORM golang:1.16-alpine +FROM --platform=$TARGETOS/$TARGETARCH golang:1.16-alpine LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io" diff --git a/installers/alpine/Dockerfile b/installers/alpine/Dockerfile index 0f6b97f..a5b6b81 100644 --- a/installers/alpine/Dockerfile +++ b/installers/alpine/Dockerfile @@ -20,7 +20,7 @@ # SOFTWARE. # -FROM --platform=$BUILDPLATFORM alpine:latest +FROM --platform=$TARGETOS/$TARGETARCH alpine:latest LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io" diff --git a/installers/debian/Dockerfile b/installers/debian/Dockerfile index e671c61..25168ba 100644 --- a/installers/debian/Dockerfile +++ b/installers/debian/Dockerfile @@ -18,9 +18,9 @@ # 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=$BUILDPLATFORM debian:stable-slim +FROM --platform=$TARGETOS/$TARGETARCH debian:stable-slim LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io" diff --git a/voice/teaspeak/Dockerfile b/voice/teaspeak/Dockerfile index 809b228..ffa3d3a 100644 --- a/voice/teaspeak/Dockerfile +++ b/voice/teaspeak/Dockerfile @@ -20,7 +20,7 @@ # SOFTWARE. # -FROM --platform=$BUILDPLATFORM debian:stable-slim +FROM --platform=$TARGETOS/$TARGETARCH debian:stable-slim LABEL author="Torsten Widmann" maintainer="info@goover.de" From c13524ceab26a5cf34c3924f0d1416933f044d89 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Sun, 22 May 2022 19:20:37 -0700 Subject: [PATCH 44/65] Add DayZ to root README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e0ddbbe..a65b567 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,8 @@ is tagged correctly. * `ghcr.io/parkervcp/games:altv` * [`arma3`](/games/arma3) * `ghcr.io/parkervcp/games:arma3` +* [`dayz`](/games/dayz) + * `ghcr.io/parkervcp/games:dayz` * [`samp`](/games/samp) * `ghcr.io/parkervcp/games:samp` * [`source`](/games/source) From 84abe90d35e26ce519d8ab6ff82b8b6815ecc62a Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Sun, 22 May 2022 19:42:37 -0700 Subject: [PATCH 45/65] Fix Entrypoint contributors --- games/dayz/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/games/dayz/entrypoint.sh b/games/dayz/entrypoint.sh index 080b372..9460d30 100644 --- a/games/dayz/entrypoint.sh +++ b/games/dayz/entrypoint.sh @@ -2,7 +2,7 @@ ## File: Pterodactyl DayZ SA Image - entrypoint.sh ## Author: David Wolfe (Red-Thirten) -## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/), Stephen White (SilK) +## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/) ## Date: 2022/05/22 ## License: MIT License From 7528d7949fba7877ec495ce38003b339cdd6e2a7 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Tue, 31 May 2022 20:26:18 +0200 Subject: [PATCH 46/65] add tzdata --- wine/latest/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wine/latest/Dockerfile b/wine/latest/Dockerfile index 7ab8e30..36cd688 100644 --- a/wine/latest/Dockerfile +++ b/wine/latest/Dockerfile @@ -1,6 +1,6 @@ -# ---------------------------------- -# Generic Wine 6 image -# ---------------------------------- +# --------------------------------------- +# Generic Wine image based in Wine stable +# --------------------------------------- FROM ghcr.io/parkervcp/yolks:debian LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" @@ -8,7 +8,7 @@ LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" ## install required packages RUN dpkg --add-architecture i386 \ && apt update -y \ - && apt install -y --no-install-recommends gnupg2 software-properties-common libntlm0 winbind xvfb xauth python3 libncurses5:i386 libncurses6:i386 + && apt install -y --no-install-recommends gnupg2 tzdata software-properties-common libntlm0 winbind xvfb xauth python3 libncurses5:i386 libncurses6:i386 # Install winehq-stable and with recommends RUN wget -nc https://dl.winehq.org/wine-builds/winehq.key \ From 1e257e11fc6baef7d15debcee251c12cf3f26638 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Tue, 31 May 2022 20:28:09 +0200 Subject: [PATCH 47/65] typo --- wine/latest/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wine/latest/Dockerfile b/wine/latest/Dockerfile index 36cd688..4c47ef7 100644 --- a/wine/latest/Dockerfile +++ b/wine/latest/Dockerfile @@ -1,5 +1,5 @@ # --------------------------------------- -# Generic Wine image based in Wine stable +# Generic Wine image based on Wine stable # --------------------------------------- FROM ghcr.io/parkervcp/yolks:debian From 92ac2cf94368f9d61a67b429abb3f0c95fd65cda Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Fri, 10 Jun 2022 16:38:48 +0200 Subject: [PATCH 48/65] update rcon -cli to 0.10.2 rcon-cli changelog: Added --timeout, -T flag, allowed to set dial and execute timeout #20. Added Makefile. --- games/source/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/games/source/Dockerfile b/games/source/Dockerfile index 3af65bd..6feb9ae 100644 --- a/games/source/Dockerfile +++ b/games/source/Dockerfile @@ -37,9 +37,9 @@ RUN dpkg --add-architecture i386 \ ## install rcon RUN cd /tmp/ \ - && curl -sSL https://github.com/gorcon/rcon-cli/releases/download/v0.10.1/rcon-0.10.1-amd64_linux.tar.gz > rcon.tar.gz \ + && curl -sSL https://github.com/gorcon/rcon-cli/releases/download/v0.10.2/rcon-0.10.2-amd64_linux.tar.gz > rcon.tar.gz \ && tar xvf rcon.tar.gz \ - && mv rcon-0.10.1-amd64_linux/rcon /usr/local/bin/ + && mv rcon-0.10.2-amd64_linux/rcon /usr/local/bin/ USER container ENV USER=container HOME=/home/container From 68547991a3759cc12dc3dd259d68ac436879bf65 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 18 Jun 2022 16:37:45 +0300 Subject: [PATCH 49/65] feat(installers): add tar and unzip to alpine --- installers/alpine/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installers/alpine/Dockerfile b/installers/alpine/Dockerfile index a5b6b81..6ecc6cb 100644 --- a/installers/alpine/Dockerfile +++ b/installers/alpine/Dockerfile @@ -27,4 +27,4 @@ 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 +RUN apk add --update --no-cache ca-certificates curl unzip tar git jq wget From 06dd4191775e40a1088732a690c18ec630710cba Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 6 Jul 2022 16:36:29 +0200 Subject: [PATCH 50/65] Create Dockerfile --- box64/Dockerfile | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 box64/Dockerfile diff --git a/box64/Dockerfile b/box64/Dockerfile new file mode 100644 index 0000000..7d8f1a8 --- /dev/null +++ b/box64/Dockerfile @@ -0,0 +1,34 @@ +FROM --platform=$TARGETOS/$TARGETARCH debian:bullseye-slim + +LABEL author="QuintenQVD" maintainer="josdekurk@gmail.com" + +ENV DEBIAN_FRONTEND noninteractive + +## Update base packages +RUN apt update \ + && apt upgrade -y + +## Install dependencies +RUN apt install -y libc++-dev libc6 git wget curl tar zip unzip binutils xz-utils liblzo2-2 cabextract iproute2 net-tools libatomic1 libsdl1.2debian libsdl2-2.0-0 \ + libfontconfig libicu67 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadbclient-dev-compat libduktape205 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates \ + libz-dev rapidjson-dev tzdata libevent-dev libzip4 libsdl2-mixer-2.0-0 libsdl2-image-2.0-0 build-essential cmake libgdiplus + +## Configure locale +RUN update-locale lang=en_US.UTF-8 \ + && dpkg-reconfigure --frontend noninteractive locales + + +##Install box64 +RUN wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list \ + && wget -O- https://ryanfortner.github.io/box64-debs/KEY.gpg | gpg --dearmor | tee /usr/share/keyrings/box64-debs-archive-keyring.gpg \ + && apt update && apt install box64 -y + + + +RUN 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"] From 87f386f237d65a1778c13cd677e1ba437f9ab25f Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 6 Jul 2022 16:40:21 +0200 Subject: [PATCH 51/65] add files --- .github/workflows/box64.yml | 39 +++++++++++++++++++++++++++++++++++++ README.md | 5 +++++ box64/entrypoint.sh | 13 +++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 .github/workflows/box64.yml create mode 100644 box64/entrypoint.sh diff --git a/.github/workflows/box64.yml b/.github/workflows/box64.yml new file mode 100644 index 0000000..30005ab --- /dev/null +++ b/.github/workflows/box64.yml @@ -0,0 +1,39 @@ +name: build box64 +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * 1" + push: + branches: + - master + paths: + - box64/** +jobs: + push: + name: "yolks:${{ matrix.oses }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tag: + - box64 + steps: + - uses: actions/checkout@v2 + - uses: docker/setup-qemu-action@v1 + - uses: docker/setup-buildx-action@v1 + with: + version: "v0.5.1" + buildkitd-flags: --debug + - uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.REGISTRY_TOKEN }} + - uses: docker/build-push-action@v2 + with: + context: ./box64 + file: ./${{ matrix.oses }}/Dockerfile + platforms: linux/arm64 + push: true + tags: | + ghcr.io/parkervcp/yolks:${{ matrix.tag }} diff --git a/README.md b/README.md index a65b567..bb4f49d 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,11 @@ is tagged correctly. * [`sinusbot`](/bot/sinusbot) * `ghcr.io/parkervcp/yolks:bot_sinusbot` +### [Box64](/box64) + +* [`Box64`](/box64) + * `ghcr.io/parkervcp/yolks:box64` + ### [Cassandra](/cassandra) * [`cassandra_java8_python27`](/cassandra/cassandra_java8_python2) diff --git a/box64/entrypoint.sh b/box64/entrypoint.sh new file mode 100644 index 0000000..b5facda --- /dev/null +++ b/box64/entrypoint.sh @@ -0,0 +1,13 @@ +#!/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}'` + + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} \ No newline at end of file From f63645406558c8ece18f2196145dd91c5680a7f4 Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 21 Jul 2022 10:01:11 +0300 Subject: [PATCH 52/65] ci(box64): fix tag name --- .github/workflows/box64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/box64.yml b/.github/workflows/box64.yml index 30005ab..186f712 100644 --- a/.github/workflows/box64.yml +++ b/.github/workflows/box64.yml @@ -10,7 +10,7 @@ on: - box64/** jobs: push: - name: "yolks:${{ matrix.oses }}" + name: "yolks:${{ matrix.tag }}" runs-on: ubuntu-latest strategy: fail-fast: false From c47ac7f71bfb26e551c9ff0c4465dd20ac91e90c Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 21 Jul 2022 10:09:20 +0300 Subject: [PATCH 53/65] ci(box64): fix file path --- .github/workflows/box64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/box64.yml b/.github/workflows/box64.yml index 186f712..e01826c 100644 --- a/.github/workflows/box64.yml +++ b/.github/workflows/box64.yml @@ -32,7 +32,7 @@ jobs: - uses: docker/build-push-action@v2 with: context: ./box64 - file: ./${{ matrix.oses }}/Dockerfile + file: ./${{ matrix.tag }}/Dockerfile platforms: linux/arm64 push: true tags: | From 8141da4091e3d653d60a6238c06f9bc51f83ba7d Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Mon, 1 Aug 2022 16:06:19 +0200 Subject: [PATCH 54/65] add redis 7 Image --- README.md | 8 +++++++- redis/7/Dockerfile | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 redis/7/Dockerfile diff --git a/README.md b/README.md index 3e76301..9948592 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,6 @@ is tagged correctly. * [`source`](/games/source) * `ghcr.io/parkervcp/games:source` - ### [Golang](/go) * [`go1.14`](/go/1.14) @@ -121,6 +120,7 @@ is tagged correctly. * `ghcr.io/parkervcp/yolks:java_17` ### [MariaDB](/mariadb) + * [`MariaDB 10.3`](/mariadb/10.3) * `ghcr.io/parkervcp/yolks:mariadb_10.3` * [`MariaDB 10.4`](/mariadb/10.4) @@ -133,12 +133,14 @@ is tagged correctly. * `ghcr.io/parkervcp/yolks:mariadb_10.7` ### [MongoDB](/mongodb) + * [`MongoDB 4`](/mongodb/4) * `ghcr.io/parkervcp/yolks:mongodb_4` * [`MongoDB 5`](/mongodb/5) * `ghcr.io/parkervcp/yolks:mongodb_5` ### [Mono](/mono) + * [`mono_latest`](/mono/latest) * `ghcr.io/parkervcp/yolks:mono_latest` @@ -156,6 +158,7 @@ is tagged correctly. * `ghcr.io/parkervcp/yolks:nodejs_18` ### [PostgreSQL](/postgres) + * [`Postgres 9`](/postgres/9) * `ghcr.io/parkervcp/yolks:postgres_9` * [`Postgres 10`](/postgres/10) @@ -181,10 +184,13 @@ is tagged correctly. * `ghcr.io/parkervcp/yolks:python_3.10` ### [Redis](/redis) + * [`Redis 5`](/redis/5) * `ghcr.io/parkervcp/yolks:redis_5` * [`Redis 6`](/redis/6) * `ghcr.io/parkervcp/yolks:redis_6` + * [`Redis 7`](/redis/7) + * `ghcr.io/parkervcp/yolks:redis_7` ### [Rust](/rust) diff --git a/redis/7/Dockerfile b/redis/7/Dockerfile new file mode 100644 index 0000000..6a95b67 --- /dev/null +++ b/redis/7/Dockerfile @@ -0,0 +1,20 @@ +# ---------------------------------- +# Environment: redis +# ---------------------------------- +FROM --platform=$TARGETOS/$TARGETARCH redis:7-bullseye + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt -y update && \ + apt -y upgrade && \ + apt -y install iproute2 && \ + useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file From 032d9bcf41830e74fe6cb27c3178c719428cea66 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Mon, 1 Aug 2022 16:07:04 +0200 Subject: [PATCH 55/65] workflow --- .github/workflows/redis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/redis.yml b/.github/workflows/redis.yml index 9752964..55af893 100644 --- a/.github/workflows/redis.yml +++ b/.github/workflows/redis.yml @@ -19,6 +19,7 @@ jobs: tag: - 5 - 6 + - 7 steps: - uses: actions/checkout@v2 - uses: docker/setup-qemu-action@v1 From 2a9dddad44f06caa247b65e3e542ad81191d6cad Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sun, 7 Aug 2022 11:58:29 +0200 Subject: [PATCH 56/65] build: update workflow dependencies to the latest versions (#65) --- .github/workflows/base.yml | 12 ++++++------ .github/workflows/bot.yml | 12 ++++++------ .github/workflows/box64.yml | 12 ++++++------ .github/workflows/cassandra.yml | 10 +++++----- .github/workflows/dotnet.yml | 10 +++++----- .github/workflows/erlang.yml | 10 +++++----- .github/workflows/games.yml | 10 +++++----- .github/workflows/go.yml | 10 +++++----- .github/workflows/installers.yml | 10 +++++----- .github/workflows/java.yml | 12 ++++++------ .github/workflows/mariadb.yml | 12 ++++++------ .github/workflows/mongodb.yml | 12 ++++++------ .github/workflows/mono.yml | 10 +++++----- .github/workflows/nodejs.yml | 12 ++++++------ .github/workflows/postgres.yml | 10 +++++----- .github/workflows/python.yml | 12 ++++++------ .github/workflows/redis.yml | 10 +++++----- .github/workflows/rust.yml | 12 ++++++------ .github/workflows/voice.yml | 10 +++++----- .github/workflows/wine.yml | 10 +++++----- 20 files changed, 109 insertions(+), 109 deletions(-) diff --git a/.github/workflows/base.yml b/.github/workflows/base.yml index 6bfa0e6..2c3caf9 100644 --- a/.github/workflows/base.yml +++ b/.github/workflows/base.yml @@ -20,18 +20,18 @@ jobs: - debian - ubuntu steps: - - uses: actions/checkout@v2 - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./oses/${{ matrix.oses }} file: ./oses/${{ matrix.oses }}/Dockerfile diff --git a/.github/workflows/bot.yml b/.github/workflows/bot.yml index 6eae438..ba9b0fe 100644 --- a/.github/workflows/bot.yml +++ b/.github/workflows/bot.yml @@ -20,28 +20,28 @@ jobs: - red - sinusbot steps: - - uses: actions/checkout@v2 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.7.0" + version: "v0.8.2" buildkitd-flags: --debug - name: Set up QEMU uses: docker/setup-qemu-action@master with: platforms: arm64,amd64 - name: Cache Docker layers - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: /tmp/.buildx-cache key: ${{ runner.os }}-buildx-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx- - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./bot/${{ matrix.tag }} file: ./bot/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/box64.yml b/.github/workflows/box64.yml index e01826c..5cf53fb 100644 --- a/.github/workflows/box64.yml +++ b/.github/workflows/box64.yml @@ -18,18 +18,18 @@ jobs: tag: - box64 steps: - - uses: actions/checkout@v2 - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./box64 file: ./${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/cassandra.yml b/.github/workflows/cassandra.yml index 69ecb78..27659d4 100644 --- a/.github/workflows/cassandra.yml +++ b/.github/workflows/cassandra.yml @@ -19,17 +19,17 @@ jobs: - java8_python2 - java11_python3 steps: - - uses: actions/checkout@v2 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./cassandra file: ./cassandra/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index d7859d2..ff621f1 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -21,17 +21,17 @@ jobs: - 5 - 6 steps: - - uses: actions/checkout@v2 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./dotnet file: ./dotnet/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/erlang.yml b/.github/workflows/erlang.yml index 6cd1412..3b9986c 100644 --- a/.github/workflows/erlang.yml +++ b/.github/workflows/erlang.yml @@ -20,17 +20,17 @@ jobs: - 23 - 24 steps: - - uses: actions/checkout@v2 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./erlang file: ./erlang/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index a6e4a38..a52adc0 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -24,17 +24,17 @@ jobs: - source steps: - - uses: actions/checkout@v2 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./games/${{ matrix.game }} file: ./games/${{ matrix.game }}/Dockerfile diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 66e9744..bffc2d2 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -20,17 +20,17 @@ jobs: - 1.15 - 1.16 steps: - - uses: actions/checkout@v2 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./go file: ./go/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/installers.yml b/.github/workflows/installers.yml index 81eff14..601fd4d 100644 --- a/.github/workflows/installers.yml +++ b/.github/workflows/installers.yml @@ -19,17 +19,17 @@ jobs: - alpine - debian steps: - - uses: actions/checkout@v2 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./installers file: ./installers/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml index 80008b7..d79560b 100644 --- a/.github/workflows/java.yml +++ b/.github/workflows/java.yml @@ -24,18 +24,18 @@ jobs: # - 16j9 - 17 steps: - - uses: actions/checkout@v2 - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./java file: ./java/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/mariadb.yml b/.github/workflows/mariadb.yml index e29534e..e6eaac5 100644 --- a/.github/workflows/mariadb.yml +++ b/.github/workflows/mariadb.yml @@ -23,18 +23,18 @@ jobs: - '10.6' - '10.7' steps: - - uses: actions/checkout@v2 - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./mariadb file: ./mariadb/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/mongodb.yml b/.github/workflows/mongodb.yml index 71c2d89..e2eee07 100644 --- a/.github/workflows/mongodb.yml +++ b/.github/workflows/mongodb.yml @@ -20,18 +20,18 @@ jobs: - 4 - 5 steps: - - uses: actions/checkout@v2 - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./mongodb file: ./mongodb/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/mono.yml b/.github/workflows/mono.yml index 749e28c..4abac14 100644 --- a/.github/workflows/mono.yml +++ b/.github/workflows/mono.yml @@ -18,17 +18,17 @@ jobs: tag: - latest steps: - - uses: actions/checkout@v2 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./mono file: ./mono/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 8bf5235..9c3b6c9 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -22,19 +22,19 @@ jobs: - 17 - 18 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # Setup QEMU for ARM64 Build - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./nodejs file: ./nodejs/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/postgres.yml b/.github/workflows/postgres.yml index 984e616..5850ab5 100644 --- a/.github/workflows/postgres.yml +++ b/.github/workflows/postgres.yml @@ -24,13 +24,13 @@ jobs: - 13 - 14 steps: - - uses: actions/checkout@v2 - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 96892de..380fcfa 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -22,19 +22,19 @@ jobs: - '3.9' - '3.10' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # Setup QEMU for ARM64 Build - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./python file: ./python/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/redis.yml b/.github/workflows/redis.yml index 55af893..b183e95 100644 --- a/.github/workflows/redis.yml +++ b/.github/workflows/redis.yml @@ -21,13 +21,13 @@ jobs: - 6 - 7 steps: - - uses: actions/checkout@v2 - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 99d04f3..6f2c721 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -21,19 +21,19 @@ jobs: - '1.60' - 'latest' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # Setup QEMU for ARM64 Build - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./rust file: ./rust/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/voice.yml b/.github/workflows/voice.yml index 6b3250e..6a6dece 100644 --- a/.github/workflows/voice.yml +++ b/.github/workflows/voice.yml @@ -18,17 +18,17 @@ jobs: tag: - teaspeak steps: - - uses: actions/checkout@v2 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./voice/${{ matrix.tag }} file: ./voice/${{ matrix.tag }}/Dockerfile diff --git a/.github/workflows/wine.yml b/.github/workflows/wine.yml index de31ef9..ecaed8c 100644 --- a/.github/workflows/wine.yml +++ b/.github/workflows/wine.yml @@ -18,17 +18,17 @@ jobs: tag: - latest steps: - - uses: actions/checkout@v2 - - uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 with: - version: "v0.5.1" + version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v1 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v2 + - uses: docker/build-push-action@v3 with: context: ./wine file: ./wine/${{ matrix.tag }}/Dockerfile From e666c8135448918aaa1851f4694ec5cb83190be8 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Aug 2022 16:07:11 +0300 Subject: [PATCH 57/65] docs(pr-template): add description field Short overview of why something is changed is helpful in reviewing the PR --- .github/pull_request_template.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 3698a72..24b0095 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,10 +1,15 @@ +## Description + + + ### All Submissions: * [ ] Have you ensured there aren't other open [Pull Requests](../pulls) for the same update or change? * [ ] Have you created a new branch for your changes and PR from that branch and not from your master branch? -* [ ] Have you added an explanation of what your changes do and why you'd like us to include them? + + ### New Image Submissions: 1. [ ] Have you added your image to the [Github workflows](https://github.com/parkervcp/yolks/tree/master/.github/workflows)? -2. [ ] Have you updated the README list to contain your new image? \ No newline at end of file +2. [ ] Have you updated the README list to contain your new image? From 89e25a6c583709d627c9c7d642c1ef187aa728e2 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 15 Aug 2022 16:00:26 +0300 Subject: [PATCH 58/65] fix(redis): correct ci login action version V3 doesn't exist. --- .github/workflows/redis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/redis.yml b/.github/workflows/redis.yml index b183e95..144c1a0 100644 --- a/.github/workflows/redis.yml +++ b/.github/workflows/redis.yml @@ -27,7 +27,7 @@ jobs: with: version: "v0.8.2" buildkitd-flags: --debug - - uses: docker/login-action@v3 + - uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} From 37819258384085b9f315c78f416462306bc5bf8d Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sun, 28 Aug 2022 14:10:37 +0200 Subject: [PATCH 59/65] add mongodb 6 --- .github/workflows/mongodb.yml | 1 + mongodb/6/Dockerfile | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 mongodb/6/Dockerfile diff --git a/.github/workflows/mongodb.yml b/.github/workflows/mongodb.yml index e2eee07..4e9d850 100644 --- a/.github/workflows/mongodb.yml +++ b/.github/workflows/mongodb.yml @@ -19,6 +19,7 @@ jobs: tag: - 4 - 5 + - 6 steps: - uses: actions/checkout@v3 - uses: docker/setup-qemu-action@v2 diff --git a/mongodb/6/Dockerfile b/mongodb/6/Dockerfile new file mode 100644 index 0000000..97cb7eb --- /dev/null +++ b/mongodb/6/Dockerfile @@ -0,0 +1,19 @@ +# ---------------------------------- +# Environment: MongoDB +# ---------------------------------- +FROM --platform=$TARGETOS/$TARGETARCH mongo:6-focal + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt update -y \ + && apt install -y netcat iproute2 \ + && useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] From c76cc152d6db195e3d71397cba31abe7c2bd1ac0 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sun, 28 Aug 2022 14:11:49 +0200 Subject: [PATCH 60/65] added mongodb6 to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9948592..9226948 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,8 @@ is tagged correctly. * `ghcr.io/parkervcp/yolks:mongodb_4` * [`MongoDB 5`](/mongodb/5) * `ghcr.io/parkervcp/yolks:mongodb_5` + * [`MongoDB 6`](/mongodb/6) + * `ghcr.io/parkervcp/yolks:mongodb_6` ### [Mono](/mono) From 695deed0d9cc197b728bc230b1e322aed25d9cf9 Mon Sep 17 00:00:00 2001 From: Extrem Techniker Date: Wed, 14 Sep 2022 11:12:17 +0200 Subject: [PATCH 61/65] Add Go Versions 1.17, 1.18 and 1.19 --- .github/workflows/go.yml | 3 +++ README.md | 6 ++++++ go/1.17/Dockerfile | 38 ++++++++++++++++++++++++++++++++++++++ go/1.18/Dockerfile | 38 ++++++++++++++++++++++++++++++++++++++ go/1.19/Dockerfile | 38 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 123 insertions(+) create mode 100644 go/1.17/Dockerfile create mode 100644 go/1.18/Dockerfile create mode 100644 go/1.19/Dockerfile diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index bffc2d2..bc31cfa 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -19,6 +19,9 @@ jobs: - 1.14 - 1.15 - 1.16 + - 1.17 + - 1.18 + - 1.19 steps: - uses: actions/checkout@v3 - uses: docker/setup-buildx-action@v2 diff --git a/README.md b/README.md index 9226948..c915ad3 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,12 @@ is tagged correctly. * `ghcr.io/parkervcp/yolks:go_1.15` * [`go1.16`](/go/1.16) * `ghcr.io/parkervcp/yolks:go_1.16` +* [`go1.17`](/go/1.17) + * `ghcr.io/parkervcp/yolks:go_1.17` +* [`go1.18`](/go/1.18) + * `ghcr.io/parkervcp/yolks:go_1.18` +* [`go1.19`](/go/1.19) + * `ghcr.io/parkervcp/yolks:go_1.19` ### [Java](/java) diff --git a/go/1.17/Dockerfile b/go/1.17/Dockerfile new file mode 100644 index 0000000..522c443 --- /dev/null +++ b/go/1.17/Dockerfile @@ -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" ] diff --git a/go/1.18/Dockerfile b/go/1.18/Dockerfile new file mode 100644 index 0000000..be01868 --- /dev/null +++ b/go/1.18/Dockerfile @@ -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.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 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" ] diff --git a/go/1.19/Dockerfile b/go/1.19/Dockerfile new file mode 100644 index 0000000..d838bb8 --- /dev/null +++ b/go/1.19/Dockerfile @@ -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.19-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" ] From 0665f931d8c6a2297d8cfe88e4694ee2f58b1d18 Mon Sep 17 00:00:00 2001 From: PterodactylFan <77065016+PterodactylFan@users.noreply.github.com> Date: Sat, 24 Sep 2022 19:38:23 +0300 Subject: [PATCH 62/65] Create DockerFile --- java/19/DockerFile | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 java/19/DockerFile diff --git a/java/19/DockerFile b/java/19/DockerFile new file mode 100644 index 0000000..e962f88 --- /dev/null +++ b/java/19/DockerFile @@ -0,0 +1,17 @@ +FROM --platform=$TARGETOS/$TARGETARCH openjdk:19-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 -y \ + && apt install -y curl ca-certificates openssl git tar sqlite3 fontconfig tzdata iproute2 libfreetype6 \ + && 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" ] From 42ab4c6c84051cb88c92920b03a2b540497d7ac9 Mon Sep 17 00:00:00 2001 From: oliver194 <100048880+oliver194@users.noreply.github.com> Date: Sun, 25 Sep 2022 08:36:57 +0100 Subject: [PATCH 63/65] add java 19 to be built --- .github/workflows/java.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml index d79560b..8ede371 100644 --- a/.github/workflows/java.yml +++ b/.github/workflows/java.yml @@ -23,6 +23,7 @@ jobs: - 16 # - 16j9 - 17 + - 19 steps: - uses: actions/checkout@v3 - uses: docker/setup-qemu-action@v2 From 885373a1d5d6787740bbd25f9fccfe883d7b6ad9 Mon Sep 17 00:00:00 2001 From: Daniel Barton Date: Wed, 28 Sep 2022 20:58:08 +0800 Subject: [PATCH 64/65] Rename DockerFile to Dockerfile (#76) --- java/19/{DockerFile => Dockerfile} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename java/19/{DockerFile => Dockerfile} (100%) diff --git a/java/19/DockerFile b/java/19/Dockerfile similarity index 100% rename from java/19/DockerFile rename to java/19/Dockerfile From 9ae8c1427a8a5b38244bbe7e360cf455e4b01750 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Thu, 29 Sep 2022 14:43:16 -0400 Subject: [PATCH 65/65] Update Sinusbot Image --- bot/sinusbot/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bot/sinusbot/Dockerfile b/bot/sinusbot/Dockerfile index 63afc17..e61aea4 100644 --- a/bot/sinusbot/Dockerfile +++ b/bot/sinusbot/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$TARGETOS/$TARGETARCH ubuntu:18.04 +FROM --platform=$TARGETOS/$TARGETARCH debian:stable-slim LABEL maintainer="ki2007 " version="1.0" @@ -7,7 +7,8 @@ ENV DEBIAN_FRONTEND noninteractive # Install Dependencies RUN apt update \ && apt upgrade -y \ - && apt install -y ca-certificates less libasound2 libegl1-mesa libglib2.0-0 libnss3 libpci3 libpulse0 libxcursor1 libxslt1.1 libx11-xcb1 libxkbcommon0 locales pulseaudio python sudo x11vnc x11-xkb-utils xvfb iproute2 \ + && apt install -y ca-certificates less locales pulseaudio python python3 sudo x11vnc x11-xkb-utils xvfb iproute2 \ + libasound2 libegl1-mesa libglib2.0-0 libnss3 libpci3 libpulse0 libxcursor1 libxslt1.1 libx11-xcb1 libxkbcommon0 \ && useradd -m -d /home/container container ENV LANG C.UTF-8