-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDockerfile
31 lines (25 loc) · 2.61 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# To build this stack:
# docker build -t quay.io/openshiftlabs/mad-coolstore-devspaces:1.0 . --platform linux/x86_64
# docker push quay.io/openshiftlabs/mad-coolstore-devspaces:1.0
# macOS M1: --platform linux/x86_64
FROM registry.redhat.io/devspaces/udi-rhel8:3.12
ENV MANDREL_VERSION=23.1.2.0-Final
ENV MVN_VERSION=3.9.6
ENV GRAALVM_HOME="/usr/local/mandrel-java21-${MANDREL_VERSION}"
ENV PATH="/usr/local/maven/apache-maven-${MVN_VERSION}/bin:${PATH}"
ENV JAVA_HOME="/usr/lib/jvm/java-21-openjdk"
ENV QUARKUS_VERSION="3.9.4"
ENV JBANG_DIR="/usr/local/jbang"
USER root
RUN wget -O /tmp/openjdk-21.0.2.tar.gz https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz && tar -xvzf /tmp/openjdk-21.0.2.tar.gz && rm -rf /tmp/openjdk-21.0.2.tar.gz && mv jdk-21.0.2 /tmp/java-21-openjdk && sudo mv /tmp/java-21-openjdk /usr/lib/jvm/ && sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-21-openjdk/bin/java 1
RUN wget -O /tmp/mvn.tar.gz https://archive.apache.org/dist/maven/maven-3/${MVN_VERSION}/binaries/apache-maven-${MVN_VERSION}-bin.tar.gz && sudo tar -xvzf /tmp/mvn.tar.gz && rm -rf /tmp/mvn.tar.gz && mkdir /usr/local/maven && mv apache-maven-${MVN_VERSION}/ /usr/local/maven/ && alternatives --install /usr/bin/mvn mvn /usr/local/maven/apache-maven-${MVN_VERSION}/bin/mvn 1
RUN sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && sudo microdnf install -y zlib-devel gcc siege gcc-c++ && sudo curl -Lo /usr/bin/jq https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 && sudo chmod a+x /usr/bin/jq
RUN wget -O /tmp/mandrel.tar.gz https://github.com/graalvm/mandrel/releases/download/mandrel-${MANDREL_VERSION}/mandrel-java21-linux-amd64-${MANDREL_VERSION}.tar.gz && cd /usr/local && sudo tar -xvzf /tmp/mandrel.tar.gz && rm -rf /tmp/mandrel.tar.gz
RUN ln -f -s /usr/lib/jvm/java-21-openjdk/* ${HOME}/.java/current
RUN mkdir -p /usr/local/quarkus-cli/lib && mkdir /usr/local/quarkus-cli/bin
RUN wget -O /tmp/quarkus-cli.tgz https://github.com/quarkusio/quarkus/releases/download/${QUARKUS_VERSION}/quarkus-cli-${QUARKUS_VERSION}.tar.gz && tar -xzf /tmp/quarkus-cli.tgz -C /tmp
RUN cp /tmp/quarkus-cli-${QUARKUS_VERSION}/bin/quarkus /usr/local/quarkus-cli/bin && cp /tmp/quarkus-cli-${QUARKUS_VERSION}/lib/quarkus-cli-${QUARKUS_VERSION}-runner.jar /usr/local/quarkus-cli/lib
RUN chmod +x /usr/local/quarkus-cli/bin/quarkus && cd /usr/local/bin && ln -s ../quarkus-cli/bin/quarkus quarkus
RUN mkdir -p ${JBANG_DIR} && curl -Ls https://sh.jbang.dev | bash -s - app setup
RUN ln -s ${JBANG_DIR}/bin/jbang /usr/local/bin/jbang
USER user