| borgbutler-docker/app/Dockerfile | ●●●●● patch | view | raw | blame | history | |
| borgbutler-docker/app/entrypoint.sh | ●●●●● patch | view | raw | blame | history | |
| borgbutler-docker/buildDocker.sh | ●●●●● patch | view | raw | blame | history | |
| borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/BorgRepoConfigsRest.java | ●●●●● 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"; }