diff options
Diffstat (limited to 'Services/mongo')
-rw-r--r-- | Services/mongo/Dockerfile | 21 | ||||
-rw-r--r-- | Services/mongo/README.md | 4 | ||||
-rw-r--r-- | Services/mongo/mongo_run.sh | 2 | ||||
-rw-r--r-- | Services/mongo/mongodb.conf | 27 | ||||
-rw-r--r-- | Services/mongo/sx/mongod.sh | 48 | ||||
-rw-r--r-- | Services/mongo/sx/mongod_run.sh | 7 |
6 files changed, 95 insertions, 14 deletions
diff --git a/Services/mongo/Dockerfile b/Services/mongo/Dockerfile index aee3456..0199e76 100644 --- a/Services/mongo/Dockerfile +++ b/Services/mongo/Dockerfile @@ -1,7 +1,6 @@ FROM startx/fedora MAINTAINER Christophe LARUE <dev@startx.fr> -COPY mongo_run.sh /bin/ RUN yum -y install \ mongodb \ mongodb-server \ @@ -11,15 +10,15 @@ RUN yum -y install \ mongodb-mms-monitoring-agent \ && yum clean all \ && mkdir -p /var/lib/mongodb \ - && touch /var/lib/mongodb/.keep \ - && chown -R mongod:mongod /var/lib/mongodb \ - && chmod ug+rx /bin/mongo_* - -VOLUME ["/var/lib/mongodb"] -USER mongod - + && 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 EXPOSE 27017 -#CMD ["/usr/bin/mongod", "--config", "/etc/mongodb.conf"] -CMD ["/bin/mongo_run.sh"] -ONBUILD CMD ["/bin/mongo_run.sh"]
\ No newline at end of file +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 diff --git a/Services/mongo/README.md b/Services/mongo/README.md index 5c423e3..aa23252 100644 --- a/Services/mongo/README.md +++ b/Services/mongo/README.md @@ -16,6 +16,8 @@ Copy sources in your docker host cd startx-docker-images; git clone https://github.com/startxfr/docker-images.git . +Change configuration and personalize your base image. See sx/mongod_run.sh to perform some usefull task against the database, especially importing sql script, adding users and changing passwords. See also mongodb.conf for configuring the mongo server running in the container. + Build the container docker build -t sv-mongo Services/mongo/ @@ -31,7 +33,7 @@ access to the running database access to the container itself - docker exec -it mongo bash + docker exec -it mongo /bin/bash ## Related Resources * [Sources files](https://github.com/startxfr/docker-images/tree/master/Services/mongo) diff --git a/Services/mongo/mongo_run.sh b/Services/mongo/mongo_run.sh deleted file mode 100644 index 09eba06..0000000 --- a/Services/mongo/mongo_run.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -/usr/bin/mongod --config /etc/mongodb.conf
\ No newline at end of file diff --git a/Services/mongo/mongodb.conf b/Services/mongo/mongodb.conf new file mode 100644 index 0000000..89d19f2 --- /dev/null +++ b/Services/mongo/mongodb.conf @@ -0,0 +1,27 @@ +## +### 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 +journal = true + +# Turn on/off security. Off is currently the default +#noauth = true +#auth = true + +# Verbose logging output. +#verbose = true + +# Disable the HTTP interface (Defaults to port+1000). +nohttpinterface = true + +# Accout token for Mongo monitoring server. +#mms-token = <token> +#mms-name = container-sv-mongo +#mms-interval = 2 + +# Replication Options diff --git a/Services/mongo/sx/mongod.sh b/Services/mongo/sx/mongod.sh new file mode 100644 index 0000000..9bb6281 --- /dev/null +++ b/Services/mongo/sx/mongod.sh @@ -0,0 +1,48 @@ +#!/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 new file mode 100644 index 0000000..6a0f018 --- /dev/null +++ b/Services/mongo/sx/mongod_run.sh @@ -0,0 +1,7 @@ +#!/bin/bash +source /sx/mongod.sh + +begin_config +end_config + +start_daemon
\ No newline at end of file |