summaryrefslogtreecommitdiffstats
path: root/Services/nodejs
diff options
context:
space:
mode:
Diffstat (limited to 'Services/nodejs')
-rw-r--r--Services/nodejs/Dockerfile27
-rw-r--r--Services/nodejs/app.js (renamed from Services/nodejs/app/app.js)2
-rw-r--r--Services/nodejs/docker-compose.yml15
-rw-r--r--Services/nodejs/run.sh67
-rw-r--r--Services/nodejs/sx/nodejs.sh40
-rw-r--r--Services/nodejs/sx/nodejs_run.sh7
6 files changed, 101 insertions, 57 deletions
diff --git a/Services/nodejs/Dockerfile b/Services/nodejs/Dockerfile
index dc20d72..2113c64 100644
--- a/Services/nodejs/Dockerfile
+++ b/Services/nodejs/Dockerfile
@@ -1,12 +1,21 @@
FROM startx/fedora
MAINTAINER Christophe LARUE <dev@startx.fr>
-RUN dnf -y install nodejs npm python make gcc \
- && dnf clean all \
- && mkdir -p /app \
- && chmod ug+rx /app
-VOLUME ["/app"]
-WORKDIR /app
-COPY app /app
-ENV MAIN_APP /app/app.js
-ENV NODE_PATH /app/node_modules
+USER root
+RUN dnf -y install nodejs npm python make gcc && \
+ dnf clean all
+ENV STARTUPLOG=/data/logs/nodejs/startup.log \
+ LOG_PATH=/data/logs/nodejs \
+ APP_PATH=/data/nodejs \
+ APP_MAIN=/data/nodejs/app.js
+COPY *.sh /bin/
+RUN chmod 775 /bin/run.sh && \
+ mkdir -p $APP_PATH && \
+ mkdir -p $LOG_PATH && \
+ touch $STARTUPLOG
+COPY ./ $APP_PATH
+RUN rm -f $APP_PATH/Dockerfile $APP_PATH/README.md $APP_PATH/run.sh $APP_PATH/docker-compose.yml
+
+EXPOSE 8000
+VOLUME [$APP_PATH,$LOG_PATH]
+CMD ["/bin/run.sh"] \ No newline at end of file
diff --git a/Services/nodejs/app/app.js b/Services/nodejs/app.js
index aebd6b8..6a0da10 100644
--- a/Services/nodejs/app/app.js
+++ b/Services/nodejs/app.js
@@ -7,4 +7,4 @@ var server = http.createServer(function (request, response) {
});
server.listen(8000);
-console.log("Server running at http://127.0.0.1:8000/"); \ No newline at end of file
+console.log("Server is running"); \ No newline at end of file
diff --git a/Services/nodejs/docker-compose.yml b/Services/nodejs/docker-compose.yml
new file mode 100644
index 0000000..4f26e53
--- /dev/null
+++ b/Services/nodejs/docker-compose.yml
@@ -0,0 +1,15 @@
+server:
+ build: ./
+# image: sv-nodejs
+ container_name: "nodejs-server"
+ mem_limit: 1g
+ memswap_limit: 1g
+ cpu_shares: 5
+ restart: "on-failure:2"
+ environment:
+ CONTAINER_TYPE: "service"
+ CONTAINER_SERVICE: "nodejs"
+ CONTAINER_INSTANCE: "service-nodejs"
+ volumes:
+ - "/tmp/container/logs/nodejs:/data/logs/nodejs"
+ - "/tmp/container/nodejs:/data/nodejs" \ No newline at end of file
diff --git a/Services/nodejs/run.sh b/Services/nodejs/run.sh
new file mode 100644
index 0000000..f10bbd2
--- /dev/null
+++ b/Services/nodejs/run.sh
@@ -0,0 +1,67 @@
+#!/bin/bash
+source /bin/sx-lib.sh
+
+
+function check_nodejs_environment {
+ check_environment
+ if [ ! -v APP_PATH ]; then
+ APP_PATH="/data/nodejs"
+ export APP_PATH
+ fi
+ if [ ! -v LOG_PATH ]; then
+ LOG_PATH="/data/logs/nodejs"
+ export LOG_PATH
+ fi
+}
+
+function display_container_nodejs_header {
+ echo "+====================================================="
+ echo "| Container : $HOSTNAME"
+ echo "| OS : $(</etc/redhat-release)"
+ echo "| Engine : $(node -v | head -1)"
+ if [ -v CONTAINER_TYPE ]; then
+ echo "| Type : $CONTAINER_TYPE"
+ fi
+ if [ -v CONTAINER_INSTANCE ]; then
+ echo "| Instance : $CONTAINER_INSTANCE"
+ fi
+ if [ -v CONTAINER_SERVICE ]; then
+ echo "| Service : $CONTAINER_SERVICE"
+ fi
+ if [ -v APP_PATH ]; then
+ echo "| App path : $APP_PATH"
+ fi
+ if [ -v LOG_PATH ]; then
+ echo "| Log path : $LOG_PATH"
+ fi
+ echo "+====================================================="
+}
+
+# Begin configuration before starting daemonized process
+# and start generating host keys
+function begin_config {
+ echo "=> BEGIN NODEJS CONFIGURATION"
+}
+
+# End configuration process just before starting daemon
+function end_config {
+ echo "=> END NODEJS CONFIGURATION"
+}
+
+# Start the nodejs executable with application entrypoint
+# the running shell
+function start_daemon {
+ echo "=> Starting nodejs daemon ..."
+ display_container_started
+ exec node $APP_MAIN
+}
+
+if [[ "$0" == *"run.sh" && ! $1 = "" ]];then
+ eval "$@";
+fi
+
+check_nodejs_environment | tee -a $STARTUPLOG
+display_container_nodejs_header | tee -a $STARTUPLOG
+begin_config | tee -a $STARTUPLOG
+end_config | tee -a $STARTUPLOG
+start_daemon | tee -a $STARTUPLOG
diff --git a/Services/nodejs/sx/nodejs.sh b/Services/nodejs/sx/nodejs.sh
deleted file mode 100644
index fcf3ebb..0000000
--- a/Services/nodejs/sx/nodejs.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-export TERM=dumb
-
-# Begin configuration before starting daemonized process
-# and start generating host keys
-function begin_config {
- echo "=> Begin nodejs configuration for host $HOSTNAME"
-}
-
-# End configuration process just before starting daemon
-function end_config {
- echo "=> End nodejs configuration ..."
-}
-
-# Start the nodejs server in background. Used to perform config
-# against the database structure such as user creation
-function start_server {
- echo "===> Starting nodejs server ..."
- node $MAIN_APP &
- sleep 4
-}
-
-# Stop the nodejs server running in background.
-function stop_server {
- echo "===> Stopping nodejs server ..."
- killall node
- sleep 4
-}
-
-# Start the nodejs server as a deamon and execute it inside
-# the running shell
-function start_daemon {
- echo "=> Starting nodejs daemon ..."
- exec node $MAIN_APP
-}
-
-
-if [[ "$0" == *"nodejs.sh" && ! $1 = "" ]];then
- eval "$@";
-fi \ No newline at end of file
diff --git a/Services/nodejs/sx/nodejs_run.sh b/Services/nodejs/sx/nodejs_run.sh
deleted file mode 100644
index 875dea2..0000000
--- a/Services/nodejs/sx/nodejs_run.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-source /sx/nodejs.sh
-
-begin_config
-end_config
-
-start_daemon \ No newline at end of file