mirror of https://github.com/micromata/borgbackup-butler.git

Kai Reinhard
16.13.2021 99a31eeb84c85bae815abc6e5382833178ee10d4
Dockerfile: entryscript.sh for JAVA_OPTS. Removing of repo will now be saved to config file.
1 files added
4 files modified
79 ■■■■ changed files
borgbutler-docker/app/Dockerfile 14 ●●●● patch | view | raw | blame | history
borgbutler-docker/app/entrypoint.sh 61 ●●●●● patch | view | raw | blame | history
borgbutler-docker/buildDocker.sh 1 ●●●● patch | view | raw | blame | history
borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java 2 ●●● patch | view | raw | blame | history
borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/BorgRepoConfigsRest.java 1 ●●●● patch | view | raw | blame | history
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
borgbutler-docker/app/entrypoint.sh
New file
@@ -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.
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'"
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;
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";
    }