-
Notifications
You must be signed in to change notification settings - Fork 680
Closed
Labels
enhancementIncrementally add new featureIncrementally add new feature
Description
Version
4.7.0
Feature
The current Dockerfile does not build on my Mac M1, presumably because the eclipse-temurin:${JAVA_VERSION}-alpine base image is not multi-platform.
I was able to build on M1 using the Dockerfile below but it's probably far from optimal.
## Apache Jena Fuseki server Dockerfile.
## This Dockefile builds a reduced footprint container.
ARG JAVA_VERSION=17
ARG ALPINE_VERSION=3.17.1
ARG JENA_VERSION=4.7.0
# Internal, passed between stages.
ARG FUSEKI_DIR=/fuseki
ARG FUSEKI_JAR=jena-fuseki-server-${JENA_VERSION}.jar
## ---- Stage: Download and build java.
FROM eclipse-temurin:${JAVA_VERSION} AS base
ARG JENA_VERSION
ARG FUSEKI_DIR
ARG FUSEKI_JAR
ARG REPO=https://repo1.maven.org/maven2
ARG JAR_URL=${REPO}/org/apache/jena/jena-fuseki-server/${JENA_VERSION}/${FUSEKI_JAR}
RUN [ "${JENA_VERSION}" != "" ] || { echo -e '\n**** Set JENA_VERSION ****\n' ; exit 1 ; }
RUN echo && echo "==== Docker build for Apache Jena Fuseki ${JENA_VERSION} ====" && echo
## -- Fuseki installed and runs in /fuseki.
WORKDIR $FUSEKI_DIR
## -- Download the jar file.
COPY download.sh .
RUN chmod a+x download.sh
# Download, with check of the SHA1 checksum.
RUN ./download.sh --chksum sha1 "$JAR_URL"
## -- Alternatives to download : copy already downloaded.
## COPY ${FUSEKI_JAR} .
## Use Docker ADD - does not retry, does not check checksum, and may run every build.
## ADD "$JAR_URL"
ADD entrypoint.sh .
ADD log4j2.properties .
## ---- Stage: Build runtime
FROM eclipse-temurin:${JAVA_VERSION}
## Import ARGs
ARG JENA_VERSION
ARG JAVA_MINIMAL
ARG FUSEKI_DIR
ARG FUSEKI_JAR
#COPY --from=base /opt/java/openjdk /opt/java/openjdk
COPY --from=base /fuseki /fuseki
WORKDIR $FUSEKI_DIR
ARG LOGS=${FUSEKI_DIR}/logs
ARG DATA=${FUSEKI_DIR}/databases
ARG JENA_USER=fuseki
ARG JENA_GROUP=$JENA_USER
ARG JENA_UID=2000
ARG JENA_GID=2000
# Run as this user
# -H : no home directory
# -D : no password
RUN groupadd --gid "${JENA_GID}" "${JENA_GROUP}" && \
useradd --uid "${JENA_UID}" --gid "${JENA_GID}" --shell /bin/bash --no-create-home "${JENA_USER}"
RUN mkdir --parents "${FUSEKI_DIR}" && \
chown -R $JENA_USER ${FUSEKI_DIR}
USER $JENA_USER
RUN \
mkdir -p $LOGS && \
mkdir -p $DATA && \
chmod a+x entrypoint.sh
## Default environment variables.
ENV \
JAVA_HOME=/opt/java/openjdk \
JAVA_OPTIONS="-Xmx2048m -Xms2048m" \
JENA_VERSION=${JENA_VERSION} \
FUSEKI_JAR="${FUSEKI_JAR}" \
FUSEKI_DIR="${FUSEKI_DIR}"
EXPOSE 3030
ENTRYPOINT ["./entrypoint.sh" ]
CMD []Are you interested in contributing a solution yourself?
None
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementIncrementally add new featureIncrementally add new feature