From 5cff390c081bdfb756a8977ad0bd56d778202d6b Mon Sep 17 00:00:00 2001
From: startxfr <clarue@startx.fr>
Date: Sat, 6 Feb 2016 05:05:57 +0100
Subject: reorg avec gestion des sig

---
 Services/memcache/Dockerfile         |  4 ++--
 Services/memcache/README.md          | 12 ++++++------
 Services/memcache/docker-compose.yml |  2 +-
 Services/memcache/run.sh             | 24 +++++++++++++++---------
 4 files changed, 24 insertions(+), 18 deletions(-)

(limited to 'Services/memcache')

diff --git a/Services/memcache/Dockerfile b/Services/memcache/Dockerfile
index 32724b2..55ae563 100644
--- a/Services/memcache/Dockerfile
+++ b/Services/memcache/Dockerfile
@@ -4,8 +4,8 @@ MAINTAINER Christophe LARUE <dev@startx.fr>
 USER root
 RUN dnf -y install memcached && \
     dnf clean all 
-ENV STARTUPLOG=/data/logs/memcache/startup.log \
-    LOG_PATH=/data/logs/memcache
+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/memcache/README.md b/Services/memcache/README.md
index 0ce3167..8f88de3 100644
--- a/Services/memcache/README.md
+++ b/Services/memcache/README.md
@@ -29,7 +29,7 @@ service:
     CONTAINER_SERVICE: "memcache"
     CONTAINER_INSTANCE: "service-memcache"
   volumes:
-    - "/tmp/container/logs/memcache:/data/logs/memcache"
+    - "/tmp/container/logs/memcache:/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/memcache and used as a volume mountpoint
+| LOG_PATH                  | `auto`   | `auto`    | default set to /logs and used as a volume mountpoint
 
 ## Exposed port
 
@@ -84,8 +84,8 @@ CMD ["/bin/run.sh"]
 
 | Container directory  | Description                                                              |
 |----------------------|--------------------------------------------------------------------------|
-| /data/logs/memcache  | log directory used to record container and memcache logs
-| /data/memcache       | data directory served by memcache. If empty will be filled with app on startup. In other case use content from mountpoint or data volumes
+| /logs                | log directory used to record container and memcache logs
+| /data                | data directory served by memcache. If empty will be filled with app on startup. In other case use content from mountpoint or data volumes
 
 ## Testing the service
 
@@ -106,8 +106,8 @@ You must have a working environment with the source code of this repository. Rea
 1. Jump into the container directory with `cd Services/memcache`
 2. Build the container using `docker build -t sv-memcache .`
 3. Run this container 
-  1. Interactively with `docker run -p 11211:11211 -v /data/logs/memcache -it sv-memcache`. 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 11211:11211 -v /data/logs/memcache -d sv-memcache`
+  1. Interactively with `docker run -p 11211:11211 -v /logs -it sv-memcache`. 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 11211:11211 -v /logs -d sv-memcache`
 
 
 ### Build & run a container using `docker-compose`
diff --git a/Services/memcache/docker-compose.yml b/Services/memcache/docker-compose.yml
index 8368855..ae39b41 100644
--- a/Services/memcache/docker-compose.yml
+++ b/Services/memcache/docker-compose.yml
@@ -12,4 +12,4 @@ server:
     CONTAINER_SERVICE: "memcache"
     CONTAINER_INSTANCE: "service-memcache"
   volumes:
-    - "/tmp/container/logs/memcache:/data/logs/memcache"
\ No newline at end of file
+    - "/tmp/container/logs/memcache:/logs"
\ No newline at end of file
diff --git a/Services/memcache/run.sh b/Services/memcache/run.sh
index 77ef648..3c5a8cd 100644
--- a/Services/memcache/run.sh
+++ b/Services/memcache/run.sh
@@ -42,21 +42,27 @@ function end_config {
     echo "=> END MEMCACHE CONFIGURATION"
 }
 
+function stop_memcache_handler {
+    killall memcached
+    echo "+=====================================================" | tee -a $STARTUPLOG
+    echo "| Container $HOSTNAME is now STOPPED" | tee -a $STARTUPLOG
+    echo "+=====================================================" | tee -a $STARTUPLOG
+    exit 143; # 128 + 15 -- SIGTERM
+}
+
+
 # Start the memcache server as a deamon and execute it inside 
 # the running shell
-function start_daemon {
-    echo "=> Starting memcache daemon ..." | tee -a $STARTUPLOG
-    display_container_started | tee -a $STARTUPLOG
+function start_service_memcache {
+    trap 'kill ${!}; stop_memcache_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
     exec memcached -u daemon -v
 }
 
-
-if [[ "$0" == *"run.sh" && ! $1 = "" ]];then
-    eval "$@"; 
-fi
-
 check_environment | tee -a $STARTUPLOG
 display_container_memcache_header | tee -a $STARTUPLOG
 begin_config | tee -a $STARTUPLOG
 end_config | tee -a $STARTUPLOG
-start_daemon
+start_service_memcache
-- 
cgit v1.2.3