Files
GraalVM/build.sh
2023-08-13 18:29:37 +02:00

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