From 99a31eeb84c85bae815abc6e5382833178ee10d4 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 16 Apr 2021 15:13:43 +0000
Subject: [PATCH] Dockerfile: entryscript.sh for JAVA_OPTS. Removing of repo will now be saved to config file.
---
borgbutler-docker/buildDocker.sh | 1
borgbutler-docker/app/entrypoint.sh | 61 ++++++++++++++++++++++++++++++
borgbutler-docker/app/Dockerfile | 14 +++---
borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java | 2
borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/BorgRepoConfigsRest.java | 1
5 files changed, 71 insertions(+), 8 deletions(-)
diff --git a/borgbutler-docker/app/Dockerfile b/borgbutler-docker/app/Dockerfile
index df029d5..8ba9f29 100644
--- a/borgbutler-docker/app/Dockerfile
+++ b/borgbutler-docker/app/Dockerfile
@@ -1,9 +1,4 @@
-FROM openjdk:11
-
-# See: https://spring.io/guides/gs/spring-boot-docker/
-
-# This is a Debian system, update system packages (if needed)
-RUN apt-get update && apt-get -y upgrade
+FROM openjdk:16-jdk-buster
RUN addgroup borgbutler && adduser --ingroup borgbutler borgbutler
# ProjectForge's base dir: must be mounted on host file system:
@@ -27,6 +22,11 @@
#COPY ${DEPENDENCY}/META-INF /app/META-INF
#COPY ${DEPENDENCY}/BOOT-INF/classes /app
+COPY --chown=borgbutler:borgbutler entrypoint.sh /app
+RUN chmod 755 /app/entrypoint.sh
+#COPY shutdown.sh /app
+#COPY startup.sh /app
+
#ARG JAVA_OPTS="-Xms1g -Xmx1g"
#ENV JAVA_OPTS_VAR=$JAVA_OPTS
@@ -35,6 +35,6 @@
# Variable expansion doesn't work for ENTRYPOINT definition as array, but array is required, because graceful shutdown of
# container isn't given if java is started via 'sh -c' as it will be done by ENTRYPOINT java .....
# Java options are modifiable by user through own ENTRYPOINT definition on docker run or in docker-compose.yml.
-ENTRYPOINT ["java", "-Xms4g", "-Xmx4g", "-cp", "app/web/*:app/lib/*", "-DborgbutlerHome=/BorgButler/", "-DapplicationHome=/app", "-DbindAddress=0.0.0.0", "-DallowedClientIps=172.17.", "de.micromata.borgbutler.server.Main", "-q"]
+ENTRYPOINT ["/app/entrypoint.sh"]
MAINTAINER Micromata
diff --git a/borgbutler-docker/app/entrypoint.sh b/borgbutler-docker/app/entrypoint.sh
new file mode 100644
index 0000000..a969e6d
--- /dev/null
+++ b/borgbutler-docker/app/entrypoint.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+# https://stackoverflow.com/questions/41451159/how-to-execute-a-script-when-i-terminate-a-docker-container
+
+PROCESS_IDENTIFIER="de.micromata.borgbutler.server.Main"
+APP_NAME="BorgButler"
+
+#Define cleanup procedure
+cleanup() {
+ echo "Container stopped, performing cleanup..."
+
+ pid=$(pgrep -f $PROCESS_IDENTIFIER)
+ if [[ -z $pid ]]; then
+ echo "${APP_NAME} process not found."
+ exit 0
+ else
+ echo "Sending shutdown signal to $APP_NAME..."
+ kill $pid
+ fi
+
+ echo "waiting 5 sec for termination of pid $pid..."
+ sleep 5
+
+ pid=$(pgrep -f $PROCESS_IDENTIFIER)
+ if [[ -z $pid ]]; then
+ echo "${APP_NAME} stopped"
+ exit 0
+ else
+ echo "${APP_NAME} not stopped, now sending sigkill"
+ kill -9 $pid
+ fi
+
+ sleep 0.5
+
+ pid=$(pgrep -f $PROCESS_IDENTIFIER)
+ if [[ -z $pid ]]; then
+ echo "${APP_NAME} killed"
+ exit 0
+ else
+ echo "${APP_NAME} could not be killed"
+ exit 1
+ fi
+}
+
+echo "Starting ${APP_NAME}..."
+
+#Trap SIGTERM
+trap cleanup INT SIGTERM
+
+echo "Starting java ${JAVA_OPTS} -cp app/web/*:app/lib/* -DborgbutlerHome=/BorgButler/ -DapplicationHome=/app -DbindAddress=0.0.0.0 -DallowedClientIps=172.17. de.micromata.borgbutler.server.Main -q ${JAVA_ARGS}"
+
+java ${JAVA_OPTS} -cp app/web/*:app/lib/* -DborgbutlerHome=/BorgButler/ -DapplicationHome=/app -DbindAddress=0.0.0.0 -DallowedClientIps=172.17. de.micromata.borgbutler.server.Main -q ${JAVA_ARGS} &
+
+CHILD=$!
+wait $CHILD
+
+echo "$APP_NAME terminated."
+#wait $!
+
+#Cleanup
+#cleanup Not needed, Java process already terminated.
diff --git a/borgbutler-docker/buildDocker.sh b/borgbutler-docker/buildDocker.sh
index 87dd39e..437e6d1 100755
--- a/borgbutler-docker/buildDocker.sh
+++ b/borgbutler-docker/buildDocker.sh
@@ -13,4 +13,5 @@
echo "Push: docker push kreinhard/borgbutler:tagname"
echo "Run without ssh: 'docker run -v $HOME/BorgButler:/BorgButler -p 127.0.0.1:9042:9042 --name borgbutler kreinhard/borgbutler'"
+
echo "Run with ssh: 'docker run -v $HOME/BorgButler:/BorgButler -v $HOME/.ssh:/home/borgbutler/.ssh:ro -p 127.0.0.1:9042:9042 --name borgbutler kreinhard/borgbutler'"
diff --git a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java
index 865c180..0f4c91f 100644
--- a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java
+++ b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java
@@ -3,7 +3,7 @@
import org.apache.commons.lang3.StringUtils;
public class BorgVersion {
- public static final String BORG_DEFAULT_DOWNLOAD_VERSION = "1.1.9";
+ public static final String BORG_DEFAULT_DOWNLOAD_VERSION = "1.1.16";
private static final String BORG_VERSION = BORG_DEFAULT_DOWNLOAD_VERSION;
diff --git a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/BorgRepoConfigsRest.java b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/BorgRepoConfigsRest.java
index adfe573..0ae66d6 100644
--- a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/BorgRepoConfigsRest.java
+++ b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/BorgRepoConfigsRest.java
@@ -72,6 +72,7 @@
log.error(error);
return error;
}
+ ConfigurationHandler.getInstance().save();
return "OK";
}
--
Gitblit v1.10.0