51 lines
1.7 KiB
Docker
51 lines
1.7 KiB
Docker
FROM ghcr.io/graalvm/native-image-community:25 AS graalvm
|
|
|
|
# Create symlink to fix JAVA_HOME mismatch in base image
|
|
RUN mkdir -p /usr/lib/jvm && \
|
|
ln -s /usr/lib64/graalvm/graalvm-community-java25 /usr/lib/jvm/graalvm-community-java25
|
|
|
|
# Install build tools
|
|
RUN microdnf install -y \
|
|
curl \
|
|
git \
|
|
unzip \
|
|
zip \
|
|
wget \
|
|
findutils \
|
|
nodejs \
|
|
npm \
|
|
jq \
|
|
gnupg2 \
|
|
&& microdnf clean all
|
|
|
|
# Install Maven
|
|
ARG MAVEN_VERSION=3.9.9
|
|
RUN curl -fsSL https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
|
|
| tar -xz -C /opt && \
|
|
ln -s /opt/apache-maven-${MAVEN_VERSION}/bin/mvn /usr/local/bin/mvn
|
|
|
|
# Install Gradle
|
|
ARG GRADLE_VERSION=8.14
|
|
RUN curl -fsSL https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip -o /tmp/gradle.zip && \
|
|
unzip /tmp/gradle.zip -d /opt && \
|
|
ln -s /opt/gradle-${GRADLE_VERSION}/bin/gradle /usr/local/bin/gradle && \
|
|
rm /tmp/gradle.zip
|
|
|
|
# Install Docker CLI only (static binary, no daemon/repo needed)
|
|
ARG DOCKER_VERSION=29.4.0
|
|
RUN curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz \
|
|
| tar -xz -C /tmp && \
|
|
mv /tmp/docker/docker /usr/local/bin/docker && \
|
|
rm -rf /tmp/docker
|
|
|
|
# Install Docker Buildx plugin
|
|
ARG BUILDX_VERSION=0.21.2
|
|
RUN mkdir -p /usr/local/lib/docker/cli-plugins && \
|
|
curl -fsSL https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-amd64 \
|
|
-o /usr/local/lib/docker/cli-plugins/docker-buildx && \
|
|
chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx
|
|
|
|
ENV JAVA_HOME=/usr/lib/jvm/graalvm-community-java25
|
|
|
|
CMD ["bash"]
|