diff options
Diffstat (limited to 'Services/mongo')
-rw-r--r-- | Services/mongo/Dockerfile | 38 | ||||
-rw-r--r-- | Services/mongo/docker-compose.yml | 15 | ||||
-rw-r--r-- | Services/mongo/mongodb.conf | 9 | ||||
-rw-r--r-- | Services/mongo/run.sh | 92 | ||||
-rw-r--r-- | Services/mongo/sx/mongod.sh | 48 | ||||
-rw-r--r-- | Services/mongo/sx/mongod_run.sh | 7 |
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 |