From ea0c2fe67ccf1c1b8a1a1acca0da77b7d4fbb91b Mon Sep 17 00:00:00 2001 From: Pascal Zarrad Date: Sun, 1 Aug 2021 20:44:10 +0200 Subject: [PATCH 1/5] Add cassandra images --- .../cassandra_java11_python3/Dockerfile | 16 ++++++++++ .../cassandra_java8_python2/Dockerfile | 16 ++++++++++ software/cassandra/entrypoint.sh | 31 +++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 software/cassandra/cassandra_java11_python3/Dockerfile create mode 100644 software/cassandra/cassandra_java8_python2/Dockerfile create mode 100644 software/cassandra/entrypoint.sh diff --git a/software/cassandra/cassandra_java11_python3/Dockerfile b/software/cassandra/cassandra_java11_python3/Dockerfile new file mode 100644 index 0000000..9561cd8 --- /dev/null +++ b/software/cassandra/cassandra_java11_python3/Dockerfile @@ -0,0 +1,16 @@ +FROM --platform=$BUILDPLATFORM adoptopenjdk/openjdk11:alpine-jre + +LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de" + +LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" +LABEL org.opencontainers.image.licenses=MIT + +RUN apk add --update --no-cache python3 ca-certificates curl fontconfig git openssl sqlite tar tzdata \ + && adduser -D -h /home/container container + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/ash", "/entrypoint.sh" ] diff --git a/software/cassandra/cassandra_java8_python2/Dockerfile b/software/cassandra/cassandra_java8_python2/Dockerfile new file mode 100644 index 0000000..3fa95c8 --- /dev/null +++ b/software/cassandra/cassandra_java8_python2/Dockerfile @@ -0,0 +1,16 @@ +FROM --platform=$BUILDPLATFORM adoptopenjdk/openjdk8:alpine-jre + +LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de" + +LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" +LABEL org.opencontainers.image.licenses=MIT + +RUN apk add --update --no-cache python2 ca-certificates curl fontconfig git openssl sqlite tar tzdata \ + && adduser -D -h /home/container container + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/ash", "/entrypoint.sh" ] diff --git a/software/cassandra/entrypoint.sh b/software/cassandra/entrypoint.sh new file mode 100644 index 0000000..949fc72 --- /dev/null +++ b/software/cassandra/entrypoint.sh @@ -0,0 +1,31 @@ +#!/bin/ash + +# Default the TZ environment variable to UTC. +TZ=${TZ:-UTC} +export TZ + +# Set environment variable that holds the Internal Docker IP +INTERNAL_IP=$(ip route get 1 | awk '{print $NF;exit}') +export INTERNAL_IP + +# Switch to the container's working directory +cd /home/container || exit 1 + +# Print Java version +printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mjava -version\n" +java -version + +# Print Python version +printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython --version\n" +python --version + +# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell +# variable format of "${VARIABLE}" before evaluating the string and automatically +# replacing the values. +PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)") + +# Display the command we're running in the output, and then execute it with the env +# from the container itself. +printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED" +# shellcheck disable=SC2086 +exec env ${PARSED} From 8b6f7a652a679291df6b9fde69c2c35aeb4cdaee Mon Sep 17 00:00:00 2001 From: Pascal Zarrad Date: Sun, 1 Aug 2021 20:44:43 +0200 Subject: [PATCH 2/5] Add cassandra images to readme --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 547bbaa..9a3e3ae 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,11 @@ is tagged correctly. * `ghcr.io/parkervcp/yolks:alpine` * [debian](/oses/debian) * `ghcr.io/parkervcp/yolks:debian` +### [Cassandra](/cassandra) + * [`cassandra_java8_python27`](/cassandra/cassandra_java8_python2) + * `ghcr.io/parkervcp/yolks:cassandra_java11_python2` + * [`cassandra_java11_python3`](/cassandra/cassandra_java11_python3) + * `ghcr.io/parkervcp/yolks:cassandra_java11_python3` ### [Erlang](/erlang) * [`erlang22`](/erlang/22) * `ghcr.io/parkervcp/yolks:erlang_22` @@ -87,4 +92,4 @@ is tagged correctly. * `ghcr.io/parkervcp/installers:alpine` * [`debian-install`](/installers/debian) - * `ghcr.io/parkervcp/installers:debian` \ No newline at end of file + * `ghcr.io/parkervcp/installers:debian` From 46ac715efaafecc648b1e2d32cac7327451ac190 Mon Sep 17 00:00:00 2001 From: Pascal Zarrad Date: Sun, 1 Aug 2021 20:50:54 +0200 Subject: [PATCH 3/5] Add software build GitHub action --- .github/workflows/software.yml | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .github/workflows/software.yml diff --git a/.github/workflows/software.yml b/.github/workflows/software.yml new file mode 100644 index 0000000..59a97ac --- /dev/null +++ b/.github/workflows/software.yml @@ -0,0 +1,41 @@ +name: build software +on: + schedule: + - cron: "0 0 * * 1" + push: + branches: + - master + paths: + - 'software/**' + +jobs: + cassandra: + name: "software:${{ matrix.cassandra }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + cassandra: + - cassandra_java11_python2 + - cassandra_java11_python3 + steps: + - uses: actions/checkout@v2 + - 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: ./software/cassandra/${{ matrix.cassandra }} + file: ./software/cassandra/${{ matrix.cassandra }}/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ghcr.io/parkervcp/software:${{ matrix.cassandra }} + +# Copy a job above and adjust it to enable the build of newly added software From b797d567e4cecc9a05ee279e06e24a6f1242cbe5 Mon Sep 17 00:00:00 2001 From: Pascal Zarrad Date: Sun, 1 Aug 2021 22:20:01 +0200 Subject: [PATCH 4/5] Fix version printing --- software/cassandra/entrypoint.sh | 36 ++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/software/cassandra/entrypoint.sh b/software/cassandra/entrypoint.sh index 949fc72..4dcf22f 100644 --- a/software/cassandra/entrypoint.sh +++ b/software/cassandra/entrypoint.sh @@ -1,5 +1,27 @@ #!/bin/ash +# +# Copyright (c) 2021 Matthew Penner +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# + # Default the TZ environment variable to UTC. TZ=${TZ:-UTC} export TZ @@ -11,13 +33,15 @@ export INTERNAL_IP # Switch to the container's working directory cd /home/container || exit 1 -# Print Java version -printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mjava -version\n" -java -version - # Print Python version -printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython --version\n" -python --version +if command -v python &> /dev/null +then + printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython --version\n" + python --version +else + printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython3 --version\n" + python3 --version +fi # Convert all of the "{{VARIABLE}}" parts of the command into the expected shell # variable format of "${VARIABLE}" before evaluating the string and automatically From 70af7a9dfff487415e952eb0e4f4501b1c9e8a02 Mon Sep 17 00:00:00 2001 From: Pascal Zarrad Date: Sun, 1 Aug 2021 22:37:08 +0200 Subject: [PATCH 5/5] Make cassandra to a generic yolks image --- .../workflows/{software.yml => cassandra.yml} | 23 ++++---- cassandra/entrypoint.sh | 33 +++++++++++ .../java11_python3}/Dockerfile | 0 .../java8_python2}/Dockerfile | 0 software/cassandra/entrypoint.sh | 55 ------------------- 5 files changed, 43 insertions(+), 68 deletions(-) rename .github/workflows/{software.yml => cassandra.yml} (57%) create mode 100644 cassandra/entrypoint.sh rename {software/cassandra/cassandra_java11_python3 => cassandra/java11_python3}/Dockerfile (100%) rename {software/cassandra/cassandra_java8_python2 => cassandra/java8_python2}/Dockerfile (100%) delete mode 100644 software/cassandra/entrypoint.sh diff --git a/.github/workflows/software.yml b/.github/workflows/cassandra.yml similarity index 57% rename from .github/workflows/software.yml rename to .github/workflows/cassandra.yml index 59a97ac..1d61259 100644 --- a/.github/workflows/software.yml +++ b/.github/workflows/cassandra.yml @@ -1,4 +1,4 @@ -name: build software +name: build cassandra on: schedule: - cron: "0 0 * * 1" @@ -6,18 +6,17 @@ on: branches: - master paths: - - 'software/**' - + - cassandra/** jobs: - cassandra: - name: "software:${{ matrix.cassandra }}" + push: + name: "yolks:cassandra_${{ matrix.tag }}" runs-on: ubuntu-latest strategy: fail-fast: false matrix: - cassandra: - - cassandra_java11_python2 - - cassandra_java11_python3 + tag: + - java8_python2 + - java11_python3 steps: - uses: actions/checkout@v2 - uses: docker/setup-buildx-action@v1 @@ -31,11 +30,9 @@ jobs: password: ${{ secrets.REGISTRY_TOKEN }} - uses: docker/build-push-action@v2 with: - context: ./software/cassandra/${{ matrix.cassandra }} - file: ./software/cassandra/${{ matrix.cassandra }}/Dockerfile + context: ./cassandra + file: ./cassandra/${{ matrix.tag }}/Dockerfile platforms: linux/amd64 push: true tags: | - ghcr.io/parkervcp/software:${{ matrix.cassandra }} - -# Copy a job above and adjust it to enable the build of newly added software + ghcr.io/parkervcp/yolks:cassandra_${{ matrix.tag }} diff --git a/cassandra/entrypoint.sh b/cassandra/entrypoint.sh new file mode 100644 index 0000000..712088f --- /dev/null +++ b/cassandra/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/ash + +# Default the TZ environment variable to UTC. +TZ=${TZ:-UTC} +export TZ + +# Set environment variable that holds the Internal Docker IP +INTERNAL_IP=$(ip route get 1 | awk '{print $NF;exit}') +export INTERNAL_IP + +# Switch to the container's working directory +cd /home/container || exit 1 + +# Print Python version +if command -v python &> /dev/null +then + printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython --version\n" + python --version +else + printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython3 --version\n" + python3 --version +fi + +# 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} diff --git a/software/cassandra/cassandra_java11_python3/Dockerfile b/cassandra/java11_python3/Dockerfile similarity index 100% rename from software/cassandra/cassandra_java11_python3/Dockerfile rename to cassandra/java11_python3/Dockerfile diff --git a/software/cassandra/cassandra_java8_python2/Dockerfile b/cassandra/java8_python2/Dockerfile similarity index 100% rename from software/cassandra/cassandra_java8_python2/Dockerfile rename to cassandra/java8_python2/Dockerfile diff --git a/software/cassandra/entrypoint.sh b/software/cassandra/entrypoint.sh deleted file mode 100644 index 4dcf22f..0000000 --- a/software/cassandra/entrypoint.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/ash - -# -# Copyright (c) 2021 Matthew Penner -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# - -# Default the TZ environment variable to UTC. -TZ=${TZ:-UTC} -export TZ - -# Set environment variable that holds the Internal Docker IP -INTERNAL_IP=$(ip route get 1 | awk '{print $NF;exit}') -export INTERNAL_IP - -# Switch to the container's working directory -cd /home/container || exit 1 - -# Print Python version -if command -v python &> /dev/null -then - printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython --version\n" - python --version -else - printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython3 --version\n" - python3 --version -fi - -# 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}