[mod]
This commit is contained in:
parent
b3e4f90f9f
commit
481ef0ce09
1 changed files with 90 additions and 18 deletions
|
@ -1,25 +1,97 @@
|
|||
# fuseki with openjdk 11 docker image
|
||||
# @created 2021-11
|
||||
# author="Andy Bunce"
|
||||
ARG JDK_IMAGE=adoptopenjdk:11-jre-hotspot
|
||||
ARG VERSION=4.2.0
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM $JDK_IMAGE
|
||||
ENV URL=https://dlcdn.apache.org/jena/binaries/apache-jena-fuseki-${VERSION}.tar.gz
|
||||
|
||||
ENV BASE=/mnt/apache-jena-fuseki-${VERSION}
|
||||
FROM adoptopenjdk:11-jre-hotspot
|
||||
MAINTAINER Stian Soiland-Reyes <stain@apache.org>
|
||||
|
||||
WORKDIR /mnt
|
||||
RUN mkdir -p ${BASE} && curl -L ${URL} | tar zxv -C ${BASE} --strip-components 1
|
||||
ENV LANG C.UTF-8
|
||||
RUN set -eux; \
|
||||
apt-get update; \
|
||||
apt-get install -y --no-install-recommends \
|
||||
bash curl ca-certificates findutils coreutils gettext pwgen procps tini \
|
||||
; \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR $BASE
|
||||
|
||||
# Update below according to https://jena.apache.org/download/
|
||||
# and checksum for apache-jena-fuseki-4.x.x.tar.gz.sha512
|
||||
ENV FUSEKI_SHA512 359f8f99c8fa5968c1bdddcc39214db86da822804e3dd5fa182b86daff2d121a85b2102cffec853d9a80ceca7dea8ef65ef875919d653984af9bd297bc740167
|
||||
ENV FUSEKI_VERSION 4.2.0
|
||||
# No need for https due to sha512 checksums below
|
||||
ENV ASF_MIRROR http://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=
|
||||
ENV ASF_ARCHIVE http://archive.apache.org/dist/
|
||||
|
||||
LABEL org.opencontainers.image.url https://github.com/stain/jena-docker/tree/master/jena-fuseki
|
||||
LABEL org.opencontainers.image.source https://github.com/stain/jena-docker/
|
||||
LABEL org.opencontainers.image.documentation https://jena.apache.org/documentation/fuseki2/
|
||||
LABEL org.opencontainers.image.title "Apache Jena Fuseki"
|
||||
LABEL org.opencontainers.image.description "Fuseki is a SPARQL 1.1 server with a web interface, backed by the Apache Jena TDB RDF triple store."
|
||||
LABEL org.opencontainers.image.version ${FUSEKI_VERSION}
|
||||
LABEL org.opencontainers.image.licenses "(Apache-2.0 AND (GPL-2.0 WITH Classpath-exception-2.0) AND GPL-3.0)"
|
||||
LABEL org.opencontainers.image.authors "Apache Jena Fuseki by https://jena.apache.org/; this image by https://orcid.org/0000-0001-9842-9718"
|
||||
|
||||
# Config and data
|
||||
ENV FUSEKI_BASE /fuseki
|
||||
|
||||
|
||||
# Installation folder
|
||||
ENV FUSEKI_HOME /jena-fuseki
|
||||
|
||||
WORKDIR /tmp
|
||||
# published sha512 checksum
|
||||
RUN echo "$FUSEKI_SHA512 fuseki.tar.gz" > fuseki.tar.gz.sha512
|
||||
# Download/check/unpack/move in one go (to reduce image size)
|
||||
RUN (curl --location --silent --show-error --fail --retry-connrefused --retry 3 --output fuseki.tar.gz ${ASF_MIRROR}jena/binaries/apache-jena-fuseki-$FUSEKI_VERSION.tar.gz || \
|
||||
curl --fail --silent --show-error --retry-connrefused --retry 3 --output fuseki.tar.gz $ASF_ARCHIVE/jena/binaries/apache-jena-fuseki-$FUSEKI_VERSION.tar.gz) && \
|
||||
sha512sum -c fuseki.tar.gz.sha512 && \
|
||||
tar zxf fuseki.tar.gz && \
|
||||
mv apache-jena-fuseki* $FUSEKI_HOME && \
|
||||
rm fuseki.tar.gz* && \
|
||||
cd $FUSEKI_HOME && rm -rf fuseki.war && chmod 755 fuseki-server
|
||||
|
||||
# Test the install by testing it's ping resource. 20s sleep because Docker Hub.
|
||||
RUN $FUSEKI_HOME/fuseki-server & \
|
||||
sleep 20 && \
|
||||
curl -sS --fail 'http://localhost:3030/$/ping'
|
||||
|
||||
# No need to kill Fuseki as our shell will exit after curl
|
||||
|
||||
# As "localhost" is often inaccessible within Docker container,
|
||||
# we'll enable basic-auth with a random admin password
|
||||
# (which we'll generate on start-up)
|
||||
COPY shiro.ini $FUSEKI_HOME/shiro.ini
|
||||
COPY docker-entrypoint.sh /
|
||||
RUN chmod 755 /docker-entrypoint.sh
|
||||
|
||||
|
||||
COPY load.sh $FUSEKI_HOME/
|
||||
COPY tdbloader $FUSEKI_HOME/
|
||||
COPY tdbloader2 $FUSEKI_HOME/
|
||||
RUN chmod 755 $FUSEKI_HOME/load.sh $FUSEKI_HOME/tdbloader $FUSEKI_HOME/tdbloader2
|
||||
#VOLUME /staging
|
||||
|
||||
|
||||
# Where we start our server from
|
||||
WORKDIR $FUSEKI_HOME
|
||||
|
||||
# Make sure we start with empty /fuseki
|
||||
RUN rm -rf $FUSEKI_BASE
|
||||
VOLUME $FUSEKI_BASE
|
||||
|
||||
EXPOSE 3030
|
||||
ENTRYPOINT ["/usr/bin/tini", "--", "/docker-entrypoint.sh"]
|
||||
CMD ["/jena-fuseki/fuseki-server"]
|
||||
|
||||
ENTRYPOINT [ "bin/fuseki-server" ]
|
||||
|
||||
LABEL org.opencontainers.image.source="https://repository.apache.org/content/repositories/releases/org/apache/jena/jena-fuseki-server/${VERSION}"
|
||||
LABEL org.opencontainers.image.vendor="Quodatum Ltd"
|
||||
LABEL org.opencontainers.image.licenses="Apache-2.0"
|
||||
LABEL com.quodatum.basex-docker.basex="${VERSION}"
|
||||
LABEL com.quodatum.basex-docker.jdk="${JDK_IMAGE}"
|
Loading…
Add table
Reference in a new issue