Fix merge full and lite version in dockerfile and CI tests
Docker run Kustvakt full version by default. Run with argument --lite to
activate the lite version.
Change-Id: Iccdc21fcfcd439aca078751a738d007f098c5027
diff --git a/.github/workflows/ci_test.yml b/.github/workflows/ci_test.yml
index 4c6723f..36e3a65 100644
--- a/.github/workflows/ci_test.yml
+++ b/.github/workflows/ci_test.yml
@@ -42,4 +42,4 @@
run: mvn --file Koral/pom.xml install
- name: Build and package Kustvakt
- run: mvn clean --file Kustvakt/pom.xml package
\ No newline at end of file
+ run: mvn clean --file Kustvakt/pom.xml package
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b0ac593..02fa71c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -23,7 +23,7 @@
- apk update
- apk add --no-cache git
script:
- - docker build -f Dockerfile -t korap/kustvakt:$VID -t korap/kustvakt:latest .
+ - docker build -f Dockerfile -t korap/kustvakt:$VID .
- docker save korap/kustvakt:$VID | xz -T0 -M16G -9 > kustvakt.tar.xz
artifacts:
paths:
diff --git a/Dockerfile b/Dockerfile
index 1663273..4024c72 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,18 +1,16 @@
+# *** 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"
@@ -24,16 +22,7 @@
unzip *.zip && \
cd Koral-* && \
mvn clean install
-
RUN rm -r Koral-* v*.zip
-
-#RUN curl -L -o koral-head.zip https://github.com/KorAP/Koral/archive/HEAD.zip && \
-# unzip koral-head.zip && \
-# cd Koral-* && \
-# mvn clean install && \
-# cd /kustvakt && \
-# rm -rf Koral-* koral-head.zip
-
RUN mkdir built
# Install Krill
@@ -46,79 +35,69 @@
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 -DskipTests=true && \
+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 \
+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 | \
+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 eclipse-temurin:22-jre-alpine AS example-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
-
+ 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.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", "/kustvakt/Kustvakt.jar"]
+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 .
-# docker run --rm --net host -v [absolute-path-sample-index]:/kustvakt/index -it korap/kustvakt:{nr} --lite
\ No newline at end of file
+# 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
\ No newline at end of file