From 5cff390c081bdfb756a8977ad0bd56d778202d6b Mon Sep 17 00:00:00 2001 From: startxfr Date: Sat, 6 Feb 2016 05:05:57 +0100 Subject: reorg avec gestion des sig --- Services/ooconv/Dockerfile | 4 ++-- Services/ooconv/README.md | 10 +++++----- Services/ooconv/docker-compose.yml | 2 +- Services/ooconv/run.sh | 24 ++++++++++++++---------- 4 files changed, 22 insertions(+), 18 deletions(-) (limited to 'Services/ooconv') diff --git a/Services/ooconv/Dockerfile b/Services/ooconv/Dockerfile index feeed82..b50d347 100644 --- a/Services/ooconv/Dockerfile +++ b/Services/ooconv/Dockerfile @@ -4,8 +4,8 @@ MAINTAINER Christophe LARUE USER root RUN dnf -y install unoconv libreoffice-headless libreoffice-writer libreoffice-calc pdfmod ghostscript && \ dnf clean all -ENV STARTUPLOG=/data/logs/ooconv/startup.log \ - LOG_PATH=/data/logs/ooconv +ENV STARTUPLOG=/logs/startup.log \ + LOG_PATH=/logs COPY *.sh /bin/ RUN chmod 775 /bin/run.sh && \ mkdir -p $LOG_PATH && \ diff --git a/Services/ooconv/README.md b/Services/ooconv/README.md index f35b54c..ef81641 100644 --- a/Services/ooconv/README.md +++ b/Services/ooconv/README.md @@ -29,7 +29,7 @@ service: CONTAINER_SERVICE: "ooconv" CONTAINER_INSTANCE: "service-ooconv" volumes: - - "/tmp/container/logs/ooconv:/data/logs/ooconv" + - "/tmp/container/logs/ooconv:/logs" ``` ## Docker-compose in various situations @@ -72,7 +72,7 @@ CMD ["/bin/run.sh"] | CONTAINER_TYPE | `string` | `no` | Container family (os, service, application. could be enhanced | CONTAINER_SERVICE | `string` | `no` | Define the type of service or application provided | HOSTNAME | `auto` | `auto` | Container unique id automatically assigned by docker daemon at startup -| LOG_PATH | `auto` | `auto` | default set to /data/logs/ooconv and used as a volume mountpoint +| LOG_PATH | `auto` | `auto` | default set to /logs and used as a volume mountpoint ## Exposed port @@ -84,7 +84,7 @@ CMD ["/bin/run.sh"] | Container directory | Description | |----------------------|--------------------------------------------------------------------------| -| /data/logs/ooconv | log directory used to record container and ooconv logs +| /logs | log directory used to record container and ooconv logs ## Testing the service @@ -105,8 +105,8 @@ You must have a working environment with the source code of this repository. Rea 1. Jump into the container directory with `cd Services/ooconv` 2. Build the container using `docker build -t sv-ooconv .` 3. Run this container - 1. Interactively with `docker run -p 2002:2002 -v /data/logs/ooconv -it sv-ooconv`. If you add a second parameter (like `/bin/bash`) to will run this command instead of the default entrypoint. Usefull to interact with this container (ex: `/bin/bash`, `/bin/ps -a`, `/bin/df -h`,...) - 2. As a daemon with `docker run -p 2002:2002 -v /data/logs/ooconv -d sv-ooconv` + 1. Interactively with `docker run -p 2002:2002 -v /logs -it sv-ooconv`. If you add a second parameter (like `/bin/bash`) to will run this command instead of the default entrypoint. Usefull to interact with this container (ex: `/bin/bash`, `/bin/ps -a`, `/bin/df -h`,...) + 2. As a daemon with `docker run -p 2002:2002 -v /logs -d sv-ooconv` ### Build & run a container using `docker-compose` diff --git a/Services/ooconv/docker-compose.yml b/Services/ooconv/docker-compose.yml index b22e23a..bcead90 100644 --- a/Services/ooconv/docker-compose.yml +++ b/Services/ooconv/docker-compose.yml @@ -12,4 +12,4 @@ server: CONTAINER_SERVICE: "ooconv" CONTAINER_INSTANCE: "service-ooconv" volumes: - - "/tmp/container/logs/ooconv:/data/logs/ooconv" \ No newline at end of file + - "/tmp/container/logs/ooconv:/logs" \ No newline at end of file diff --git a/Services/ooconv/run.sh b/Services/ooconv/run.sh index 4ed67b7..2d8ddf6 100644 --- a/Services/ooconv/run.sh +++ b/Services/ooconv/run.sh @@ -43,24 +43,28 @@ function end_config { echo "=> END OOCONV CONFIGURATION" } +function stop_ooconv_handler { + killall unoconv soffice.bin + echo "+=====================================================" | tee -a $STARTUPLOG + echo "| Container $HOSTNAME is now STOPPED" | tee -a $STARTUPLOG + echo "+=====================================================" | tee -a $STARTUPLOG + exit 143; # 128 + 15 -- SIGTERM +} + # Start the ooconv server as a deamon and execute it inside # the running shell -function start_daemon { - echo "=> Starting ooconv daemon ..." | tee -a $STARTUPLOG - display_container_started | tee -a $STARTUPLOG +function start_service_ooconv { + trap 'kill ${!}; stop_ooconv_handler' SIGHUP SIGINT SIGQUIT SIGTERM SIGKILL SIGSTOP SIGCONT + echo "+=====================================================" | tee -a $STARTUPLOG + echo "| Container $HOSTNAME is now RUNNING" | tee -a $STARTUPLOG + echo "+=====================================================" | tee -a $STARTUPLOG unoconv --listener -vvv | tee -a $STARTUPLOG - sleep 1 killall unoconv soffice.bin exec unoconv --listener } - -if [[ "$0" == *"run.sh" && ! $1 = "" ]];then - eval "$@"; -fi - check_environment | tee -a $STARTUPLOG display_container_ooconv_header | tee -a $STARTUPLOG begin_config | tee -a $STARTUPLOG end_config | tee -a $STARTUPLOG -start_daemon +start_service_ooconv -- cgit v1.2.3