Skip to content

Commit 1f638c8

Browse files
committed
add java 20 because why not lol
1 parent ea84c46 commit 1f638c8

File tree

6 files changed

+277
-0
lines changed

6 files changed

+277
-0
lines changed

.github/workflows/java.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ jobs:
2121
- 11
2222
- 16
2323
- 17
24+
- 20
2425
- 21
2526
- 22
2627
- 23
@@ -30,24 +31,28 @@ jobs:
3031
- 11-jre
3132
- 16-jre
3233
- 17-jre
34+
- 20-jre
3335
- 21-jre
3436
- 22-jre
3537
- 23-jre
3638
- 24-jre
3739

3840
- 17-graalvm
41+
- 20-graalvm
3942
- 21-graalvm
4043
- 22-graalvm
4144
- 23-graalvm
4245
- 24-graalvm
4346

4447
- 17-graalvm-slim
48+
- 20-graalvm-slim
4549
- 21-graalvm-slim
4650
- 22-graalvm-slim
4751
- 23-graalvm-slim
4852
- 24-graalvm-slim
4953

5054
- 17-g-thanos
55+
- 20-g-thanos
5156
- 21-g-thanos
5257
- 22-g-thanos
5358
- 23-g-thanos

java/20-g-thanos/Dockerfile

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#
2+
# Copyright (c) 2021 Matthew Penner
3+
#
4+
# Permission is hereby granted, free of charge, to any person obtaining a copy
5+
# of this software and associated documentation files (the "Software"), to deal
6+
# in the Software without restriction, including without limitation the rights
7+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8+
# copies of the Software, and to permit persons to whom the Software is
9+
# furnished to do so, subject to the following conditions:
10+
#
11+
# The above copyright notice and this permission notice shall be included in all
12+
# copies or substantial portions of the Software.
13+
#
14+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20+
# SOFTWARE.
21+
#
22+
23+
FROM --platform=$TARGETOS/$TARGETARCH debian:latest
24+
ARG TARGETARCH
25+
26+
LABEL author="Matthew Penner" maintainer="[email protected]"
27+
28+
LABEL org.opencontainers.image.source="https://github.com/Soapy7261/yolks"
29+
LABEL org.opencontainers.image.licenses=MIT
30+
31+
COPY ./../entrypoint-thanos.sh /entrypoint.sh
32+
COPY ./../install_composer.sh /composer_install.sh
33+
COPY ./../hash_check.sh /hash_check.sh
34+
35+
ENV DEBIAN_FRONTEND=noninteractive
36+
ENV COMPOSER_ALLOW_SUPERUSER=1
37+
38+
RUN apt-get update -y && apt-get install -y apt-transport-https lsb-release ca-certificates curl git \
39+
&& apt-get upgrade -y \
40+
&& useradd -d /home/container -m container && chmod +x /entrypoint.sh && chown container /entrypoint.sh \
41+
# Install GraalVM
42+
&& if [ "${TARGETARCH}" = "amd64" ]; then \
43+
echo "Installing GraalVM for x86_64 architecture"; \
44+
curl -o /graalvm.tar.gz https://download.oracle.com/graalvm/20/latest/graalvm-jdk-20_linux-x64_bin.tar.gz; \
45+
elif [ "${TARGETARCH}" = "arm64" ]; then \
46+
echo "Installing GraalVM for aarch64 architecture"; \
47+
curl -o /graalvm.tar.gz https://download.oracle.com/graalvm/20/latest/graalvm-jdk-20_linux-aarch64_bin.tar.gz; \
48+
else \
49+
echo "Unsupported architecture: ${TARGETARCH}"; exit 1; \
50+
fi \
51+
# Check SHA256 to make sure its not corrupted
52+
&& /bin/bash /hash_check.sh 20 && rm /hash_check.sh \
53+
&& mkdir /graalvm && tar -xzf /graalvm.tar.gz -C /graalvm --strip-components=1 \
54+
&& chown -R container /graalvm && chmod +x /graalvm/bin/java \
55+
&& chmod -R 755 /graalvm && rm /graalvm.tar.gz \
56+
# Install PHP
57+
&& curl -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \
58+
&& echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list \
59+
&& apt-get update -y && apt-get install -y php8.1 \
60+
&& /bin/bash /composer_install.sh && rm /composer_install.sh \
61+
&& mkdir /thanos && chown container /thanos && cd /thanos && composer require aternos/thanos \
62+
# Remove the packages we dont need anymore
63+
&& apt-get remove -y apt-transport-https lsb-release ca-certificates curl git \
64+
&& apt-get autoremove -y && rm -rf /var/lib/apt/lists/*
65+
66+
ENV DEBIAN_FRONTEND=dialog
67+
USER container
68+
ENV USER=container HOME=/home/container
69+
WORKDIR /home/container
70+
ENV JAVA_HOME="/graalvm"
71+
ENV PATH="$JAVA_HOME/bin:$PATH"
72+
73+
CMD [ "/bin/bash", "/entrypoint.sh" ]

java/20-graalvm-slim/Dockerfile

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#
2+
# Copyright (c) 2021 Matthew Penner
3+
#
4+
# Permission is hereby granted, free of charge, to any person obtaining a copy
5+
# of this software and associated documentation files (the "Software"), to deal
6+
# in the Software without restriction, including without limitation the rights
7+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8+
# copies of the Software, and to permit persons to whom the Software is
9+
# furnished to do so, subject to the following conditions:
10+
#
11+
# The above copyright notice and this permission notice shall be included in all
12+
# copies or substantial portions of the Software.
13+
#
14+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20+
# SOFTWARE.
21+
#
22+
23+
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
24+
ARG TARGETARCH
25+
26+
LABEL author="Matthew Penner" maintainer="[email protected]"
27+
28+
LABEL org.opencontainers.image.source="https://github.com/Soapy7261/yolks"
29+
LABEL org.opencontainers.image.licenses=MIT
30+
31+
COPY ./../entrypoint.sh /entrypoint.sh
32+
COPY ./../hash_check.sh /hash_check.sh
33+
34+
RUN apt-get update -y && apt-get install -y curl \
35+
&& apt-get upgrade -y && rm -rf /var/lib/apt/lists/* \
36+
&& if [ "${TARGETARCH}" = "amd64" ]; then \
37+
echo "Installing GraalVM for x86_64 architecture"; \
38+
curl -o /graalvm.tar.gz https://download.oracle.com/graalvm/20/latest/graalvm-jdk-20_linux-x64_bin.tar.gz; \
39+
elif [ "${TARGETARCH}" = "arm64" ]; then \
40+
echo "Installing GraalVM for aarch64 architecture"; \
41+
curl -o /graalvm.tar.gz https://download.oracle.com/graalvm/20/latest/graalvm-jdk-20_linux-aarch64_bin.tar.gz; \
42+
else \
43+
echo "Unsupported architecture: ${TARGETARCH}"; exit 1; \
44+
fi \
45+
# Check SHA256 to make sure its not corrupted
46+
&& /bin/bash /hash_check.sh 20 && rm /hash_check.sh \
47+
&& mkdir /graalvm && tar -xzf /graalvm.tar.gz -C /graalvm --strip-components=1 \
48+
&& useradd -d /home/container -m container && chmod +x /entrypoint.sh && chown container /entrypoint.sh \
49+
&& chown -R container /graalvm && chmod +x /graalvm/bin/java \
50+
&& chmod -R 755 /graalvm && rm /graalvm.tar.gz \
51+
&& apt-get remove --purge -y curl
52+
53+
USER container
54+
ENV USER=container HOME=/home/container
55+
WORKDIR /home/container
56+
ENV JAVA_HOME="/graalvm"
57+
ENV PATH="$JAVA_HOME/bin:$PATH"
58+
59+
CMD [ "/bin/bash", "/entrypoint.sh" ]

java/20-graalvm/Dockerfile

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#
2+
# Copyright (c) 2021 Matthew Penner
3+
#
4+
# Permission is hereby granted, free of charge, to any person obtaining a copy
5+
# of this software and associated documentation files (the "Software"), to deal
6+
# in the Software without restriction, including without limitation the rights
7+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8+
# copies of the Software, and to permit persons to whom the Software is
9+
# furnished to do so, subject to the following conditions:
10+
#
11+
# The above copyright notice and this permission notice shall be included in all
12+
# copies or substantial portions of the Software.
13+
#
14+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20+
# SOFTWARE.
21+
#
22+
23+
FROM --platform=$TARGETOS/$TARGETARCH debian:latest
24+
ARG TARGETARCH
25+
26+
LABEL author="Matthew Penner" maintainer="[email protected]"
27+
28+
LABEL org.opencontainers.image.source="https://github.com/Soapy7261/yolks"
29+
LABEL org.opencontainers.image.licenses=MIT
30+
31+
COPY ./../entrypoint.sh /entrypoint.sh
32+
COPY ./../hash_check.sh /hash_check.sh
33+
34+
RUN apt-get update -y && apt-get install -y curl \
35+
&& apt-get upgrade -y && rm -rf /var/lib/apt/lists/* \
36+
&& if [ "${TARGETARCH}" = "amd64" ]; then \
37+
echo "Installing GraalVM for x86_64 architecture"; \
38+
curl -o /graalvm.tar.gz https://download.oracle.com/graalvm/20/latest/graalvm-jdk-20_linux-x64_bin.tar.gz; \
39+
elif [ "${TARGETARCH}" = "arm64" ]; then \
40+
echo "Installing GraalVM for aarch64 architecture"; \
41+
curl -o /graalvm.tar.gz https://download.oracle.com/graalvm/20/latest/graalvm-jdk-20_linux-aarch64_bin.tar.gz; \
42+
else \
43+
echo "Unsupported architecture: ${TARGETARCH}"; exit 1; \
44+
fi \
45+
# Check SHA256 to make sure its not corrupted
46+
&& /bin/bash /hash_check.sh 20 && rm /hash_check.sh \
47+
&& mkdir /graalvm && tar -xzf /graalvm.tar.gz -C /graalvm --strip-components=1 \
48+
&& useradd -d /home/container -m container && chmod +x /entrypoint.sh && chown container /entrypoint.sh \
49+
&& chown -R container /graalvm && chmod +x /graalvm/bin/java \
50+
&& chmod -R 755 /graalvm && rm /graalvm.tar.gz
51+
52+
USER container
53+
ENV USER=container HOME=/home/container
54+
WORKDIR /home/container
55+
ENV JAVA_HOME="/graalvm"
56+
ENV PATH="$JAVA_HOME/bin:$PATH"
57+
58+
CMD [ "/bin/bash", "/entrypoint.sh" ]

java/20-jre/Dockerfile

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#
2+
# Copyright (c) 2021 Matthew Penner
3+
#
4+
# Permission is hereby granted, free of charge, to any person obtaining a copy
5+
# of this software and associated documentation files (the "Software"), to deal
6+
# in the Software without restriction, including without limitation the rights
7+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8+
# copies of the Software, and to permit persons to whom the Software is
9+
# furnished to do so, subject to the following conditions:
10+
#
11+
# The above copyright notice and this permission notice shall be included in all
12+
# copies or substantial portions of the Software.
13+
#
14+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20+
# SOFTWARE.
21+
#
22+
23+
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:20-jre
24+
25+
LABEL author="Matthew Penner" maintainer="[email protected]"
26+
27+
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
28+
LABEL org.opencontainers.image.licenses=MIT
29+
30+
RUN apt-get update -y \
31+
&& apt-get install -y btrfs-progs lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 && rm -rf /var/lib/apt/lists/* \
32+
&& useradd -d /home/container -m container
33+
34+
USER container
35+
ENV USER=container HOME=/home/container
36+
WORKDIR /home/container
37+
38+
COPY ./../entrypoint.sh /entrypoint.sh
39+
40+
CMD [ "/bin/bash", "/entrypoint.sh" ]

java/20/Dockerfile

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Hey, just wanted to remind you this version is no longer supported by oracle (or temurin)!
2+
3+
#
4+
# Copyright (c) 2021 Matthew Penner
5+
#
6+
# Permission is hereby granted, free of charge, to any person obtaining a copy
7+
# of this software and associated documentation files (the "Software"), to deal
8+
# in the Software without restriction, including without limitation the rights
9+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
# copies of the Software, and to permit persons to whom the Software is
11+
# furnished to do so, subject to the following conditions:
12+
#
13+
# The above copyright notice and this permission notice shall be included in all
14+
# copies or substantial portions of the Software.
15+
#
16+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
# SOFTWARE.
23+
#
24+
25+
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:20-jdk
26+
27+
LABEL author="Matthew Penner" maintainer="[email protected]"
28+
29+
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
30+
LABEL org.opencontainers.image.licenses=MIT
31+
32+
RUN apt-get update -y \
33+
&& apt-get install -y btrfs-progs lsof curl ca-certificates openssl git tar sqlite3 fontconfig libfreetype6 tzdata iproute2 libstdc++6 && rm -rf /var/lib/apt/lists/* \
34+
&& useradd -d /home/container -m container
35+
36+
USER container
37+
ENV USER=container HOME=/home/container
38+
WORKDIR /home/container
39+
40+
COPY ./../entrypoint.sh /entrypoint.sh
41+
42+
CMD [ "/bin/bash", "/entrypoint.sh" ]

0 commit comments

Comments
 (0)