summaryrefslogtreecommitdiffstats
path: root/Services/mongo
diff options
context:
space:
mode:
Diffstat (limited to 'Services/mongo')
-rw-r--r--Services/mongo/Dockerfile38
-rw-r--r--Services/mongo/docker-compose.yml15
-rw-r--r--Services/mongo/mongodb.conf9
-rw-r--r--Services/mongo/run.sh92
-rw-r--r--Services/mongo/sx/mongod.sh48
-rw-r--r--Services/mongo/sx/mongod_run.sh7
6 files changed, 128 insertions, 81 deletions
diff --git a/Services/mongo/Dockerfile b/Services/mongo/Dockerfile
index 85261c8..f240622 100644
--- a/Services/mongo/Dockerfile
+++ b/Services/mongo/Dockerfile
@@ -1,24 +1,22 @@
FROM startx/fedora
MAINTAINER Christophe LARUE <dev@startx.fr>
-RUN dnf -y install \
- mongodb \
- mongodb-server \
- libmongo-client \
- rsyslog-mongodb \
- mongodb-mms-backup-agent \
- mongodb-mms-monitoring-agent \
- && dnf clean all \
- && mkdir -p /var/lib/mongodb \
- && touch /var/lib/mongodb/.keep
-COPY sx/* /sx/
-COPY mongodb.conf /etc/mongodb.conf
-RUN chmod ug+rx /sx/mongod* \
- && chown -R mongodb:mongodb /sx/mongod* /var/lib/mongodb /var/log/mongodb
+USER root
+RUN dnf -y install mongodb mongodb-server libmongo-client rsyslog-mongodb && \
+ dnf clean all
+ENV MONGOCONF=/etc/mongodb.conf \
+ STARTUPLOG=/data/logs/mongodb/startup.log \
+ LOG_PATH=/data/logs/mongodb \
+ DATA_PATH=/data/mongodb
+COPY mongodb.conf $MONGOCONF
+COPY *.sh /bin/
+RUN chmod 775 /bin/run.sh && \
+ chmod ug+r $MONGOCONF && \
+ mkdir -p $DATA_PATH && \
+ mkdir -p $LOG_PATH && \
+ touch $STARTUPLOG
+RUN chown -R mongodb:mongodb $DATA_PATH $LOG_PATH
-EXPOSE 27017
-VOLUME ["/var/lib/mongodb", "/var/log/mongodb"]
-
-USER mongodb
-#ENDPOINT ["/sx/mongod_run.sh"]
-CMD ["/sx/mongod_run.sh"] \ No newline at end of file
+EXPOSE 27017 28017
+VOLUME [$DATA_PATH,$LOG_PATH]
+CMD ["/bin/run.sh"] \ No newline at end of file
diff --git a/Services/mongo/docker-compose.yml b/Services/mongo/docker-compose.yml
new file mode 100644
index 0000000..3c6a790
--- /dev/null
+++ b/Services/mongo/docker-compose.yml
@@ -0,0 +1,15 @@
+server:
+ build: ./
+# image: sx-mongo
+ container_name: "sx-mongo"
+ mem_limit: 2g
+ memswap_limit: 2g
+ cpu_shares: 10
+ restart: "on-failure:2"
+ environment:
+ CONTAINER_TYPE: "service"
+ CONTAINER_SERVICE: "mongo"
+ CONTAINER_INSTANCE: "sx-mongo"
+ volumes:
+ - "/tmp/container/logs/mongodb:/data/logs/mongodb"
+ - "/tmp/container/mongodb:/data/mongodb" \ No newline at end of file
diff --git a/Services/mongo/mongodb.conf b/Services/mongo/mongodb.conf
index 89d19f2..0fe4d13 100644
--- a/Services/mongo/mongodb.conf
+++ b/Services/mongo/mongodb.conf
@@ -1,12 +1,9 @@
-##
-### Config file copied into
-##
bind_ip = 127.0.0.1
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
-logpath = /var/log/mongodb/mongodb.log
-dbpath =/var/lib/mongodb
+logpath = /data/logs/mongodb/mongodb.log
+dbpath =/data/mongodb
journal = true
# Turn on/off security. Off is currently the default
@@ -17,7 +14,7 @@ journal = true
#verbose = true
# Disable the HTTP interface (Defaults to port+1000).
-nohttpinterface = true
+#nohttpinterface = true
# Accout token for Mongo monitoring server.
#mms-token = <token>
diff --git a/Services/mongo/run.sh b/Services/mongo/run.sh
new file mode 100644
index 0000000..3dd509d
--- /dev/null
+++ b/Services/mongo/run.sh
@@ -0,0 +1,92 @@
+#!/bin/bash
+source /bin/sx-lib.sh
+
+function check_mongodb_environment {
+ check_environment
+ if [ ! -v APP_PATH ]; then
+ APP_PATH="/data/mongodb"
+ export APP_PATH
+ fi
+ if [ ! -v LOG_PATH ]; then
+ LOG_PATH="/data/logs/mongodb"
+ export LOG_PATH
+ fi
+}
+
+function display_container_mongodb_header {
+ echo "+====================================================="
+ echo "| Container : $HOSTNAME"
+ echo "| OS : $(</etc/redhat-release)"
+ echo "| Engine : $(mongo --version | 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 DATA_PATH ]; then
+ echo "| Data path : $DATA_PATH"
+ fi
+ if [ -v LOG_PATH ]; then
+ echo "| Log path : $LOG_PATH"
+ fi
+ if [ -v LOADSQL_PATH ]; then
+ echo "| sql path : $LOADSQL_PATH"
+ fi
+ echo "+====================================================="
+}
+
+
+# Begin configuration before starting daemonized process
+# and start generating host keys
+function begin_config {
+ echo "=> BEGIN MONGODB CONFIGURATION"
+ if [[ ! -d $DATA_PATH ]]; then
+ echo "log directory $DATA_PATH not found"
+ mkdir -p $DATA_PATH; chmod 0774 $DATA_PATH
+ echo "data directory $DATA_PATH CREATED"
+ else
+ echo "data directory $DATA_PATH EXIST"
+ fi
+ if [[ ! -d $LOG_PATH ]]; then
+ echo "log directory $LOG_PATH not found"
+ mkdir -p $LOG_PATH; chmod 0774 $LOG_PATH
+ echo "log directory $LOG_PATH CREATED"
+ else
+ echo "log directory $LOG_PATH EXIST"
+ fi
+ chmod 0774 $DATA_PATH $LOG_PATH;
+ chown mongodb:mongodb $DATA_PATH $LOG_PATH;
+}
+
+
+
+# End configuration process just before starting daemon
+function end_config {
+ echo "=> END MONGODB CONFIGURATION"
+}
+
+# Start the mongodb server as a deamon and execute it inside
+# the running shell
+function start_daemon {
+ echo "=> Starting mongodb daemon ..."
+ su mongodb
+ display_container_started
+ exec /usr/bin/mongod --config $MONGOCONF --logappend --logpath $LOG_PATH \
+ --dbpath $DATA_PATH --journal --httpinterface \
+ --rest --master --storageEngine mmapv1
+}
+
+
+if [[ "$0" == *"run.sh" && ! $1 = "" ]];then
+ eval "$@";
+fi
+
+check_mongodb_environment | tee -a $STARTUPLOG
+display_container_mongodb_header | tee -a $STARTUPLOG
+begin_config | tee -a $STARTUPLOG
+end_config | tee -a $STARTUPLOG
+start_daemon | tee -a $STARTUPLOG
diff --git a/Services/mongo/sx/mongod.sh b/Services/mongo/sx/mongod.sh
deleted file mode 100644
index 9bb6281..0000000
--- a/Services/mongo/sx/mongod.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/bash
-
-export TERM=dumb
-export MONGO_CONF=/etc/mongodb.conf
-export MONGO_LOGDIR=/var/log/mongodb
-export MONGO_DATADIR=/var/lib/mongodb
-
-
-# Begin configuration before starting daemonized process
-# and start generating host keys
-function begin_config {
- echo "=> Begin mongod configuration for host $HOSTNAME"
- mkdir -p $MONGO_LOGDIR
- mkdir -p $MONGO_DATADIR
-}
-
-# End configuration process just before starting daemon
-function end_config {
- stop_server
- echo "=> End mongod configuration ..."
-}
-
-# Start the mongod server in background. Used to perform config
-# against the database structure such as user creation
-function start_server {
- echo "===> Starting mongod server ..."
- /usr/bin/mongod --config $MONGO_CONF &
- sleep 8
-}
-
-# Stop the mongod server running in background.
-function stop_server {
- echo "===> Stopping mongod server ..."
- /usr/bin/mongod --shutdown; sleep 2
- killall mongod; sleep 6
-}
-
-# Start the mongod server as a deamon and execute it inside
-# the running shell
-function start_daemon {
- echo "=> Starting mongod daemon ..."
- exec /usr/bin/mongod --config $MONGO_CONF --quiet run
-}
-
-
-if [[ "$0" == *"mongod.sh" && ! $1 = "" ]];then
- eval "$@";
-fi \ No newline at end of file
diff --git a/Services/mongo/sx/mongod_run.sh b/Services/mongo/sx/mongod_run.sh
deleted file mode 100644
index 6a0f018..0000000
--- a/Services/mongo/sx/mongod_run.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-source /sx/mongod.sh
-
-begin_config
-end_config
-
-start_daemon \ No newline at end of file