blob: 4024c7218add3af93aa2894dfc0098d97242a1b2 [file] [log] [blame]
# *** WARNING *** This Dockerfile has been updated to build one image that can run both full and lite versions. The changes require updating existing docker compose files accordingly.
# Use alpine linux as base image
FROM eclipse-temurin:22-jdk-alpine AS builder
# Copy repository respecting .dockerignore
COPY . /kustvakt
WORKDIR /kustvakt
RUN apk update && \
apk add --no-cache git \
curl \
perl \
wget \
maven
RUN git config --global user.email "korap+docker@ids-mannheim.de" && \
git config --global user.name "Docker"
# Install Koral
RUN curl -I https://github.com/KorAP/Koral/releases/latest | \
grep location | \
perl -e '$|++; <> =~ m/tag\/(v[\d\.]+(?:-release)?)/; print "https://github.com/KorAP/Koral/archive/refs/tags/${1}\.zip\n"' |\
wget -i - && \
unzip *.zip && \
cd Koral-* && \
mvn clean install
RUN rm -r Koral-* v*.zip
RUN mkdir built
# Install Krill
RUN curl -I https://github.com/KorAP/Krill/releases/latest | \
grep location | \
perl -e '$|++; <> =~ m/tag\/(v[\d\.]+(?:-release)?)/; print "https://github.com/KorAP/Krill/archive/refs/tags/${1}\.zip\n"' |\
wget -i - && \
unzip *.zip && \
cd Krill-* && \
mvn clean install && \
mvn -Dmaven.test.skip=true package && \
mv target/Krill-Indexer.jar /kustvakt/built/Krill-Indexer.jar
RUN rm -r Krill-* v*.zip
# Kustvakt
RUN mvn clean package && \
find target/Kustvakt-*.jar -exec mv {} /kustvakt/built/Kustvakt.jar ';'
RUN sed 's!\(krill\.indexDir\s*=\).\+!\1\/kustvakt\/index!' src/main/resources/kustvakt-lite.conf \
> built/kustvakt-lite.conf
RUN cat src/main/resources/kustvakt.conf | \
sed 's!\(krill\.indexDir\s*=\).\+!\1\/kustvakt\/index!' | \
sed 's!\(ldap\.config\s*=\).\+!\1\/kustvakt\/ldap\/ldap\.conf!' | \
sed 's!\(oauth2\.initial\.super\.client\s*=\).\+!\1\/true!' | \
sed '$ a oauth2.initial.super.client = true' \
> built/kustvakt.conf
RUN sed 's!\(ldifFile\s*=\).\+!\1\/kustvakt\/ldap\/ldap.ldif!' \
src/main/resources/embedded-ldap-example.conf \
> built/ldap.conf
RUN cat src/main/resources/example-users.ldif \
> built/ldap.ldif
RUN apk del git \
perl \
curl \
wget \
maven
RUN cd ${M2_HOME} && rm -r .m2
# Cleanup
RUN rm -r src && \
rm -r wiki-index
FROM busybox:latest AS example-index
WORKDIR /kustvakt
RUN addgroup -S korap && \
adduser -S kustvakt -G korap && \
mkdir kustvakt && \
chown -R kustvakt:korap /kustvakt
COPY --from=builder /kustvakt/sample-index /kustvakt/index
USER kustvakt
CMD ["sh"]
FROM eclipse-temurin:22-jre-alpine AS kustvakt
RUN addgroup -S korap && \
adduser -S kustvakt -G korap && \
mkdir kustvakt && \
chown -R kustvakt.korap /kustvakt
WORKDIR /kustvakt
USER kustvakt
RUN mkdir ./ldap && \
mkdir ./client && \
mkdir ./data
COPY --from=builder /kustvakt/built/Kustvakt.jar /kustvakt
COPY --from=builder /kustvakt/built/kustvakt.conf /kustvakt/data/
COPY --from=builder /kustvakt/built/kustvakt-lite.conf /kustvakt/data/
COPY --from=builder /kustvakt/built/ldap.* /kustvakt/ldap/
COPY --from=builder /kustvakt/built/Krill-Indexer.jar /kustvakt/
EXPOSE 8089
ENTRYPOINT [ "java", "-jar"]
CMD ["Kustvakt.jar"]
# docker build -f Dockerfile -t korap/kustvakt:{nr} .
# docker build -f Dockerfile -t korap/example-index:{nr} --target example-index .
# run full version
# docker run --rm --net host -v [absolute-path-sample-index]:/kustvakt/index korap/kustvakt:{nr}
# run lite version
# docker run --rm --net host -v [absolute-path-sample-index]:/kustvakt/index korap/kustvakt:{nr} Kustvakt.jar --lite