56 lines
1.7 KiB
Bash
56 lines
1.7 KiB
Bash
#!/bin/bash
|
|
# 2023-08-09
|
|
# ----------------------------------
|
|
# Pterodactyl Core Dockerfile Builder
|
|
# Environment: Java / GraalVM
|
|
# Minimum Panel Version: 1.7.0
|
|
# ----------------------------------
|
|
|
|
clear
|
|
cd "$(dirname "$0")" || exit 1
|
|
|
|
# Define what version of GraalVM
|
|
GRAALVM_YEAR_VERSION=20
|
|
GRAALVM_MAJOR_VERSION=0
|
|
GRAALVM_MINOR_VERSION=2
|
|
JAVA_VERSION=20
|
|
JAVA_HOME=/opt/graalvm
|
|
|
|
# Setup for SDKMAN!
|
|
GRAALVERSION=$GRAALVM_YEAR_VERSION.$GRAALVM_MAJOR_VERSION.$GRAALVM_MINOR_VERSION-graal
|
|
SDKMAN=/root/.sdkman
|
|
|
|
# Docker image name and version
|
|
IMAGE_BASE=zogg/graalvm
|
|
IMAGE_NAME_LATEST=${IMAGE_BASE}:latest
|
|
|
|
# Update GraalVM version in relevant files
|
|
find="GRAALVERSION"
|
|
replace="$GRAALVERSION"
|
|
sed "s/${find}/${replace}/g" files/_bashrc > files/bashrc
|
|
sed "s/${find}/${replace}/g" files/_docker-java-home > files/docker-java-home
|
|
sed "s/${find}/${replace}/g" files/_entrypoint.sh > files/entrypoint.sh
|
|
|
|
# Prepare for cross compile
|
|
export DOCKER_DEFAULT_PLATFORM=linux/amd64
|
|
export DOCKER_CLI_EXPERIMENTAL=enabled
|
|
docker run --privileged --rm tonistiigi/binfmt --install all
|
|
|
|
# Build with no caching disabled
|
|
docker buildx build --pull --no-cache \
|
|
--platform=linux/amd64 \
|
|
--output=type=docker \
|
|
--build-arg TZ=Europe/Paris \
|
|
--build-arg CONCURRENCY=$(nproc) \
|
|
--build-arg GRAALVERSION=${GRAALVERSION} \
|
|
--build-arg SDKMAN=${SDKMAN} \
|
|
--build-arg GRAALVM_YEAR_VERSION=${GRAALVM_YEAR_VERSION} \
|
|
--build-arg GRAALVM_MAJOR_VERSION=${GRAALVM_MAJOR_VERSION} \
|
|
--build-arg GRAALVM_MINOR_VERSION=${GRAALVM_MINOR_VERSION} \
|
|
--build-arg JAVA_VERSION=${JAVA_VERSION} \
|
|
--build-arg JAVA_HOME=${JAVA_HOME} \
|
|
-t "${IMAGE_NAME_LATEST}" \
|
|
. 2>&1 | tee build.log
|
|
|
|
exit 0
|