45 lines
1.4 KiB
Docker
45 lines
1.4 KiB
Docker
# syntax=docker/dockerfile:1
|
|
FROM ubuntu:22.04
|
|
|
|
# Avoid interactive prompts
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Install JDK, bash, and utilities
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
openjdk-17-jdk-headless \
|
|
bash curl unzip ca-certificates && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Set JAVA_HOME and PATH
|
|
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-riscv64
|
|
ENV PATH="${JAVA_HOME}/bin:${PATH}"
|
|
|
|
# Open Liberty version and paths
|
|
ENV OPENLIBERTY_HOME=/opt/openliberty
|
|
ENV OPENLIBERTY_VERSION=24.0.0.11
|
|
ENV OPENLIBERTY_FLAVOR=wlp-webProfile8
|
|
ENV OPENLIBERTY_URL="https://public.dhe.ibm.com/ibmdl/export/pub/software/openliberty/runtime/release/${OPENLIBERTY_VERSION}/${OPENLIBERTY_FLAVOR}-${OPENLIBERTY_VERSION}.zip"
|
|
|
|
# Download and install Open Liberty
|
|
RUN mkdir -p ${OPENLIBERTY_HOME} && \
|
|
echo "Downloading Open Liberty from ${OPENLIBERTY_URL}" && \
|
|
curl -fSL --retry 5 --retry-delay 5 ${OPENLIBERTY_URL} -o /tmp/openliberty.zip && \
|
|
unzip -q /tmp/openliberty.zip -d /opt && \
|
|
mv /opt/wlp ${OPENLIBERTY_HOME} && \
|
|
rm /tmp/openliberty.zip
|
|
|
|
# Make server script executable
|
|
RUN chmod +x ${OPENLIBERTY_HOME}/bin/server
|
|
|
|
# Create default server
|
|
RUN ${OPENLIBERTY_HOME}/bin/server create defaultServer
|
|
|
|
# Expose HTTP and HTTPS ports
|
|
EXPOSE 9080 9443
|
|
|
|
WORKDIR ${OPENLIBERTY_HOME}
|
|
|
|
# Run default server
|
|
CMD ["bin/server", "run", "defaultServer"]
|