From 85d7020920c691fcadd0db86ae461692bbb79579 Mon Sep 17 00:00:00 2001
From: Romain de Laage <romain.delaage@rdelaage.ovh>
Date: Thu, 29 Oct 2020 08:59:29 +0100
Subject: [PATCH] [WhiteBoard] Some enhancement in Dockerfile et entrypoint

---
 pica-whiteboard/Dockerfile         | 13 ++++++-------
 pica-whiteboard/docker-compose.yml | 20 +++++++++++++-------
 pica-whiteboard/entrypoint.sh      |  8 ++++++--
 3 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/pica-whiteboard/Dockerfile b/pica-whiteboard/Dockerfile
index 9ca876f7..a59a8c5d 100644
--- a/pica-whiteboard/Dockerfile
+++ b/pica-whiteboard/Dockerfile
@@ -1,22 +1,21 @@
 FROM node:14.2.0-alpine3.11
 
 ENV WBVERSION=1.5 \
-    SCVERSION=0.1.9
+    SCVERSION=0.1.11
 
-RUN mkdir -p /opt/app && \
-    apk add --no-cache --virtual .download ca-certificates wget && \
+RUN apk add --no-cache --virtual .download ca-certificates wget && \
     wget https://github.com/cracker0dks/whiteboard/archive/v$WBVERSION.tar.gz && \
     wget https://github.com/aptible/supercronic/releases/download/v$SCVERSION/supercronic-linux-amd64 && \
     chmod +x supercronic-linux-amd64 && \
     mv supercronic-linux-amd64 /usr/local/bin/supercronic && \
-    tar -C /opt/app -xzf v$WBVERSION.tar.gz && \
+    tar -C /opt -xzvf v$WBVERSION.tar.gz && \
     rm v$WBVERSION.tar.gz && \
-    cd /opt/app/whiteboard-$WBVERSION && \
+    mv /opt/whiteboard-$WBVERSION /opt/whiteboard && \
+    cd /opt/whiteboard && \
     npm ci && \
     apk del .download
 
-ADD crontab /opt/app/whiteboard-$WBVERSION/crontab
-ADD    entrypoint.sh /entrypoint.sh
+ADD entrypoint.sh /entrypoint.sh
 
 RUN chmod +x /entrypoint.sh
 
diff --git a/pica-whiteboard/docker-compose.yml b/pica-whiteboard/docker-compose.yml
index 2e4c6c43..f8733545 100644
--- a/pica-whiteboard/docker-compose.yml
+++ b/pica-whiteboard/docker-compose.yml
@@ -1,16 +1,22 @@
-version: '3'
+version: '3.7'
 services:
-  app:
-    image: wb
+  whiteboard-app:
+    image: registry.picasoft.net/pica-whiteboard:1.5
+    container_name: whiteboard-app
     build: .
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
     networks:
       - proxy
     labels:
-      traefik.http.routers.etherpad-app.entrypoints: websecure
-      traefik.http.routers.etherpad-app.rule: Host(`wb.test.picasoft.net`)
-      traefik.http.services.etherpad-app.loadbalancer.server.port: 8080
+      traefik.http.routers.whiteboard-app.entrypoints: websecure
+      traefik.http.routers.whiteboard-app.rule: Host(`whiteboard.picasoft.net`)
+      traefik.http.services.whiteboard-app.loadbalancer.server.port: 8080
       traefik.enable: true
-    restart: always
+    environment:
+      STOP_APP: "0 0 * * *"
+      RESTART_APP: "1 0 * * *"
+    restart: unless-stopped
 
 networks:
   proxy:
diff --git a/pica-whiteboard/entrypoint.sh b/pica-whiteboard/entrypoint.sh
index 8e9decd9..eee67969 100644
--- a/pica-whiteboard/entrypoint.sh
+++ b/pica-whiteboard/entrypoint.sh
@@ -1,5 +1,9 @@
 #! /bin/sh
 
-cd /opt/app/whiteboard-1.5
+cd /opt/whiteboard
+cat << EOF > crontab
+$STOP_APP pkill node
+$RESTART_APP cd /opt/whiteboard && node server.js --mode=production
+EOF
 node server.js --mode=production &
-supercronic /opt/app/whiteboard-1.5/crontab
+supercronic crontab
-- 
GitLab