diff --git a/Databases Docker/Dockerfile~ b/Databases Docker/Dockerfile~ new file mode 100644 index 0000000000000000000000000000000000000000..10b950ea3d5ae3f69fe43032faa225df8d1b0515 --- /dev/null +++ b/Databases Docker/Dockerfile~ @@ -0,0 +1,27 @@ +FROM ubuntu:14.04 +MAINTAINER Tutum Labs <support@tutum.co> + +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 && \ + echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list && \ + apt-get update && \ + apt-get install -y --force-yes pwgen mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools && \ + echo "mongodb-org hold" | dpkg --set-selections && echo "mongodb-org-server hold" | dpkg --set-selections && \ + echo "mongodb-org-shell hold" | dpkg --set-selections && \ + echo "mongodb-org-mongos hold" | dpkg --set-selections && \ + echo "mongodb-org-tools hold" | dpkg --set-selections + +VOLUME /data/db + +ENV AUTH yes +ENV STORAGE_ENGINE wiredTiger +ENV JOURNALING yes + +ADD run.sh /run.sh +ADD set_mongodb_password.sh /set_mongodb_password.sh + +RUN chmod +x /run.sh +RUN chmod +x /set_mongodb_password.sh + +EXPOSE 27017 28017 + +CMD ["/run.sh"] diff --git a/Databases Docker/Mongo/Dockerfile b/Databases Docker/Mongo/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..f72695949467942bdae7862d7188ca091e4f8608 --- /dev/null +++ b/Databases Docker/Mongo/Dockerfile @@ -0,0 +1,27 @@ +FROM ubuntu:14.04 +MAINTAINER Grégoire Martinache <gmartina@etu.utc.fr> + +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 && \ + echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list && \ + apt-get update && \ + apt-get install -y --force-yes pwgen mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools && \ + echo "mongodb-org hold" | dpkg --set-selections && echo "mongodb-org-server hold" | dpkg --set-selections && \ + echo "mongodb-org-shell hold" | dpkg --set-selections && \ + echo "mongodb-org-mongos hold" | dpkg --set-selections && \ + echo "mongodb-org-tools hold" | dpkg --set-selections + +VOLUME /data/db + +ENV AUTH yes +ENV STORAGE_ENGINE wiredTiger +ENV JOURNALING yes + +ADD run.sh /run.sh +ADD set_mongodb_password.sh /set_mongodb_password.sh + +RUN chmod +x /run.sh +RUN chmod +x /set_mongodb_password.sh + +EXPOSE 27017 28017 + +CMD ["/run.sh"] diff --git a/Databases Docker/Mongo/README b/Databases Docker/Mongo/README new file mode 100644 index 0000000000000000000000000000000000000000..6f57b60168884c4a4a753e3ea7ab9a5237acdc1b --- /dev/null +++ b/Databases Docker/Mongo/README @@ -0,0 +1,5 @@ +Ce dockerfile permet de mettre un mot de passe sur la base Mongo via une variable d'environnement (contrairement au build officiel). + +Build le dockerfile puis créer le container grâce à runScript.sh + +Basé sur la version de tutumcloud (Github) \ No newline at end of file diff --git a/Databases Docker/Mongo/run.sh b/Databases Docker/Mongo/run.sh new file mode 100755 index 0000000000000000000000000000000000000000..bcd9e0a7a1ef74a21bc6d992fe2c1dcf9395a097 --- /dev/null +++ b/Databases Docker/Mongo/run.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -m + +mongodb_cmd="mongod --storageEngine $STORAGE_ENGINE" +cmd="$mongodb_cmd --httpinterface --rest --master" +if [ "$AUTH" == "yes" ]; then + cmd="$cmd --auth" +fi + +if [ "$JOURNALING" == "no" ]; then + cmd="$cmd --nojournal" +fi + +if [ "$OPLOG_SIZE" != "" ]; then + cmd="$cmd --oplogSize $OPLOG_SIZE" +fi + +$cmd & + +if [ ! -f /data/db/.mongodb_password_set ]; then + /set_mongodb_password.sh +fi + +fg diff --git a/Databases Docker/Mongo/runScript.sh b/Databases Docker/Mongo/runScript.sh new file mode 100755 index 0000000000000000000000000000000000000000..198bb0de3339dd98b7fc05de7aabbf3ebf1a3d77 --- /dev/null +++ b/Databases Docker/Mongo/runScript.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +docker run -v /root/mongo/data:/data/db -d --name mongoLatex -p 27017:27017 -p 28017:28017 -e MONGODB_USER="USERNAME" -e MONGODB_DATABASE="DBNAME" -e MONGODB_PASS="PASSWORD" dockerfile/mongodb diff --git a/Databases Docker/Mongo/set_mongodb_password.sh b/Databases Docker/Mongo/set_mongodb_password.sh new file mode 100755 index 0000000000000000000000000000000000000000..e70fd805aa5abe59de6bc8dc50560f4098757e8d --- /dev/null +++ b/Databases Docker/Mongo/set_mongodb_password.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +USER=${MONGODB_USER:-"admin"} +DATABASE=${MONGODB_DATABASE:-"admin"} +PASS=${MONGODB_PASS:-$(pwgen -s 12 1)} +_word=$( [ ${MONGODB_PASS} ] && echo "preset" || echo "random" ) + +RET=1 +while [[ RET -ne 0 ]]; do + echo "=> Waiting for confirmation of MongoDB service startup" + sleep 5 + mongo admin --eval "help" >/dev/null 2>&1 + RET=$? +done + +echo "=> Creating an ${USER} user with a ${_word} password in MongoDB" +mongo admin --eval "db.createUser({user: '$USER', pwd: '$PASS', roles:[{role:'root',db:'admin'}]});" + +if [ "$DATABASE" != "admin" ]; then + echo "=> Creating an ${USER} user with a ${_word} password in MongoDB" + mongo admin -u $USER -p $PASS << EOF +use $DATABASE +db.createUser({user: '$USER', pwd: '$PASS', roles:[{role:'dbOwner',db:'$DATABASE'}]}) +EOF +fi + +echo "=> Done!" +touch /data/db/.mongodb_password_set + +echo "========================================================================" +echo "You can now connect to this MongoDB server using:" +echo "" +echo " mongo $DATABASE -u $USER -p $PASS --host <host> --port <port>" +echo "" +echo "Please remember to change the above password as soon as possible!" +echo "========================================================================" diff --git a/Databases Docker/README~ b/Databases Docker/README~ new file mode 100644 index 0000000000000000000000000000000000000000..647a13cd59a3184ccf2462e8a2e87eee7397b7fd --- /dev/null +++ b/Databases Docker/README~ @@ -0,0 +1,3 @@ +Ce dockerfile permet de mettre un mot de passe sur la base Mongo via une variable d'environnement (contrairement au build officiel). + +Build le dockerfile puis créer le container grâce à runScript.sh \ No newline at end of file diff --git a/Databases Docker/Redis/Dockerfile b/Databases Docker/Redis/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..e48598c30f6766de26b8832dd2079a08ca50c282 --- /dev/null +++ b/Databases Docker/Redis/Dockerfile @@ -0,0 +1,36 @@ +# Pull base image. +FROM ubuntu +MAINTAINER Grégoire Martinache <gmartina@etu.utc.fr> + +# Install Redis. +RUN \ +apt-get update && \ +DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends apt-utils && \ +DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \ +DEBIAN_FRONTEND=noninteractive apt-get install -y wget build-essential && \ +cd /tmp && \ +wget http://download.redis.io/redis-stable.tar.gz && \ +tar xvzf redis-stable.tar.gz && \ +cd redis-stable && \ +make && \ +make install && \ +cp -f src/redis-sentinel /usr/local/bin && \ +mkdir -p /etc/redis && \ +cp -f *.conf /etc/redis && \ +rm -rf /tmp/redis-stable* && \ +sed -i 's/^\(bind .*\)$/# \1/' /etc/redis/redis.conf && \ +sed -i 's/^\(daemonize .*\)$/# \1/' /etc/redis/redis.conf && \ +sed -i 's/^\(dir .*\)$/# \1\ndir \/data/' /etc/redis/redis.conf && \ +sed -i 's/^\(logfile .*\)$/# \1/' /etc/redis/redis.conf + +# Define mountable directories. +VOLUME ["/data"] + +# Define working directory. +WORKDIR /data + +# Define default command. +CMD ["redis-server", "/etc/redis/redis.conf"] + +# Expose ports. +EXPOSE 6379 diff --git a/Databases Docker/Redis/Dockerfile~ b/Databases Docker/Redis/Dockerfile~ new file mode 100644 index 0000000000000000000000000000000000000000..fcec020944a487c6861e3590f691e86f91f945ae --- /dev/null +++ b/Databases Docker/Redis/Dockerfile~ @@ -0,0 +1,41 @@ +# +# Redis Dockerfile +# +# https://github.com/dockerfile/redis +# + +# Pull base image. +FROM ubuntu + +# Install Redis. +RUN \ +apt-get update && \ +DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends apt-utils && \ +DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \ +DEBIAN_FRONTEND=noninteractive apt-get install -y wget build-essential && \ +cd /tmp && \ +wget http://download.redis.io/redis-stable.tar.gz && \ +tar xvzf redis-stable.tar.gz && \ +cd redis-stable && \ +make && \ +make install && \ +cp -f src/redis-sentinel /usr/local/bin && \ +mkdir -p /etc/redis && \ +cp -f *.conf /etc/redis && \ +rm -rf /tmp/redis-stable* && \ +sed -i 's/^\(bind .*\)$/# \1/' /etc/redis/redis.conf && \ +sed -i 's/^\(daemonize .*\)$/# \1/' /etc/redis/redis.conf && \ +sed -i 's/^\(dir .*\)$/# \1\ndir \/data/' /etc/redis/redis.conf && \ +sed -i 's/^\(logfile .*\)$/# \1/' /etc/redis/redis.conf + +# Define mountable directories. +VOLUME ["/data"] + +# Define working directory. +WORKDIR /data + +# Define default command. +CMD ["redis-server", "/etc/redis/redis.conf"] + +# Expose ports. +EXPOSE 6379 diff --git a/Databases Docker/Redis/README b/Databases Docker/Redis/README new file mode 100644 index 0000000000000000000000000000000000000000..b71330b87d87627346873d3ea0c652226e657fde --- /dev/null +++ b/Databases Docker/Redis/README @@ -0,0 +1 @@ +Build then run runScript.sh \ No newline at end of file diff --git a/Databases Docker/Redis/README~ b/Databases Docker/Redis/README~ new file mode 100644 index 0000000000000000000000000000000000000000..91c07f7ee3665e608267fa8b465bc74488ff5642 --- /dev/null +++ b/Databases Docker/Redis/README~ @@ -0,0 +1,2 @@ +Launch build.sh +Launch make.sh diff --git a/Databases Docker/Redis/runScript.sh b/Databases Docker/Redis/runScript.sh new file mode 100755 index 0000000000000000000000000000000000000000..34bc276eb6c07df040980032f167cadb7c2447ae --- /dev/null +++ b/Databases Docker/Redis/runScript.sh @@ -0,0 +1,2 @@ +docker pull redis +docker run -d -p 6379:6379 -v ~/PATH/TO/FOLDER:/data --name redis dockerfile/redis redis-server /etc/redis/redis.conf --requirepass PASSWORDHERE diff --git a/Databases Docker/Redis/runScript.sh~ b/Databases Docker/Redis/runScript.sh~ new file mode 100755 index 0000000000000000000000000000000000000000..3b9775a20cc6f064cacd3e45a6f5ebcb50796724 --- /dev/null +++ b/Databases Docker/Redis/runScript.sh~ @@ -0,0 +1,2 @@ +docker pull redis +docker run -d -p 6379:6379 -v /root/redis/data:/data --name redisLatex dockerfile/redislatex redis-server /etc/redis/redis.conf --requirepass iBzVUEOSh0r0j1Gmnfgm diff --git a/Databases Docker/runScript.sh~ b/Databases Docker/runScript.sh~ new file mode 100755 index 0000000000000000000000000000000000000000..97188bff1dad1f616be0960ea59f318121102888 --- /dev/null +++ b/Databases Docker/runScript.sh~ @@ -0,0 +1 @@ +docker run -v /root/mongo/data:/data/db -d --name mongoLatex -p 27017:27017 -p 28017:28017 -e MONGODB_USER="admin" -e MONGODB_DATABASE="sharelatex" -e MONGODB_PASS="KUhaBqf6582Nnwopm7Kp" dockerfile/mongodb