Skip to content
Snippets Groups Projects
Commit 44a00f67 authored by Jonas Leder's avatar Jonas Leder
Browse files

Merge branch 'jonasled-master-patch-84707' into 'master'

Add docker container

See merge request !2
parents c648930a bcce6e66
No related branches found
No related tags found
1 merge request!2Add docker container
Pipeline #8701 passed
stages:
- build-package
- build-container
build-deb-packages:
image: maven:3-eclipse-temurin-17-focal
stage: build
stage: build-package
script:
- mvn antrun:run
- mvn package
......@@ -9,3 +13,28 @@ build-deb-packages:
artifacts:
paths:
- fess.deb
build-docker:
# Use the official docker image.
image: gitlab.jonasled.de/jonasled/buildx-docker:latest
retry: 2
stage: build-container
services:
- docker:dind
before_script:
- docker context create build
- docker buildx create build --use
- docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
# Default branch leaves tagempty (= latest tag)
# All other branches are tagged with the escaped branch name (commit ref slug)
script:
- |
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
tag="latest"
else
tag="$CI_COMMIT_REF_SLUG"
fi
- docker buildx build --platform linux/amd64 --push --tag "$CI_REGISTRY_IMAGE:${tag}" .
dependencies:
- build-deb-packages
FROM eclipse-temurin:17-jre-focal
ENV FESS_APP_TYPE docker
RUN apt-get update && \
apt-get install -y imagemagick unoconv poppler-utils && \
apt-get clean && rm -rf /var/lib/apt/lists/*
ARG FESS_VERSION=14.4.0-SNAPSHOT
RUN groupadd -g 1001 fess && \
useradd -u 1001 -g fess --system --no-create-home --home /var/lib/fess fess
ARG CACHEBUST=1
COPY fess.deb /tmp/fess.deb
RUN set -x && \
dpkg -i /tmp/fess.deb && \
rm -rf /tmp/fess.deb && \
mkdir /opt/fess && \
chown -R fess.fess /opt/fess && \
sed -i -e 's#FESS_CLASSPATH="$FESS_CONF_PATH:$FESS_CLASSPATH"#FESS_CLASSPATH="$FESS_OVERRIDE_CONF_PATH:$FESS_CONF_PATH:$FESS_CLASSPATH"#g' /usr/share/fess/bin/fess && \
echo "export FESS_APP_TYPE=$FESS_APP_TYPE" >> /usr/share/fess/bin/fess.in.sh && \
echo "export FESS_OVERRIDE_CONF_PATH=/opt/fess" >> /usr/share/fess/bin/fess.in.sh && \
apt-get clean && rm -rf /var/lib/apt/lists/*
WORKDIR /usr/share/fess
EXPOSE 8080
USER root
COPY run.sh /usr/share/fess/run.sh
RUN chmod +x /usr/share/fess/run.sh
ENTRYPOINT /usr/share/fess/run.sh
run.sh 0 → 100644
#!/bin/bash
if [[ "x${FESS_DICTIONARY_PATH}" != "x" ]] ; then
sed -i -e "s|^FESS_DICTIONARY_PATH=.*|FESS_DICTIONARY_PATH=${FESS_DICTIONARY_PATH}|" /etc/default/fess
fi
if [[ "x${ES_HTTP_URL}" = "x" ]] ; then
ES_HTTP_URL=http://localhost:9200
else
sed -i -e "s|^ES_HTTP_URL=.*|ES_HTTP_URL=${ES_HTTP_URL}|" /etc/default/fess
fi
if [[ "x${ES_TYPE}" != "x" ]] ; then
FESS_JAVA_OPTS="${FESS_JAVA_OPTS} -Dfess.config.elasticsearch.type=${ES_TYPE}"
fi
if [[ "x${ES_USERNAME}" != "x" ]] ; then
FESS_JAVA_OPTS="${FESS_JAVA_OPTS} -Dfess.config.elasticsearch.username=${ES_USERNAME}"
fi
if [[ "x${ES_PASSWORD}" != "x" ]] ; then
FESS_JAVA_OPTS="${FESS_JAVA_OPTS} -Dfess.config.elasticsearch.password=${ES_PASSWORD}"
fi
if [[ "x${FESS_JAVA_OPTS}" != "x" ]] ; then
echo "FESS_JAVA_OPTS=\"${FESS_JAVA_OPTS}\"" >> /etc/default/fess
fi
if [[ "x${PING_RETRIES}" = "x" ]] ; then
PING_RETRIES=3
fi
if [[ "x${PING_INTERVAL}" = "x" ]] ; then
PING_INTERVAL=60
fi
start_fess() {
ln -s /opt/java/openjdk/bin/java /usr/bin/java
touch /var/log/fess/fess-crawler.log \
/var/log/fess/fess-suggest.log \
/var/log/fess/fess-thumbnail.log \
/var/log/fess/fess-urls.log \
/var/log/fess/audit.log \
/var/log/fess/fess.log
chown fess:fess /var/log/fess/fess-crawler.log \
/var/log/fess/fess-suggest.log \
/var/log/fess/fess-thumbnail.log \
/var/log/fess/fess-urls.log \
/var/log/fess/audit.log \
/var/log/fess/fess.log
tail -f /var/log/fess/*.log &
/etc/init.d/fess start
}
wait_app() {
if [[ "x${FESS_CONTEXT_PATH}" = "x" ]] ; then
ping_path=/json/ping
else
ping_path=${FESS_CONTEXT_PATH}/json/ping
fi
while true ; do
status=$(curl -w '%{http_code}\n' -s -o /dev/null "http://localhost:8080${ping_path}")
if [[ x"${status}" = x200 ]] ; then
error_count=0
else
error_count=$((error_count + 1))
fi
if [[ ${error_count} -ge ${PING_RETRIES} ]] ; then
echo "Fess is not available."
exit 1
fi
sleep ${PING_INTERVAL}
done
}
start_fess
if [[ "x${RUN_SHELL}" = "xtrue" ]] ; then
/bin/bash
else
wait_app
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment