From 5ad8db39e97a7f33119e6b2214a29f60daec68b0 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Fri, 13 Nov 2015 17:33:00 +0000 Subject: [PATCH] Additional docker tweaks - Legacy-Id: 10468 --- docker/Dockerfile | 1 + docker/docker-init.sh | 0 docker/updatedb | 131 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+) mode change 100755 => 100644 docker/docker-init.sh create mode 100755 docker/updatedb diff --git a/docker/Dockerfile b/docker/Dockerfile index ae58756cb..77b5775f0 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -77,6 +77,7 @@ COPY settings_local.py ./ COPY setprompt ./ COPY docker-init.sh /docker-init.sh +RUN chmod +x /docker-init.sh ENTRYPOINT ["/docker-init.sh"] CMD /bin/bash diff --git a/docker/docker-init.sh b/docker/docker-init.sh old mode 100755 new mode 100644 diff --git a/docker/updatedb b/docker/updatedb new file mode 100755 index 000000000..c67dbe853 --- /dev/null +++ b/docker/updatedb @@ -0,0 +1,131 @@ +#!/bin/bash + +version=0.10 +program=${0##*/} +progdir=${0%/*} +if [ "$progdir" = "$program" ]; then progdir="."; fi +if [ "$progdir" = "." ]; then progdir="$PWD"; fi +parent=$(dirname $progdir) +if [ "$parent" = "." ]; then parent="$PWD"; fi + +# ---------------------------------------------------------------------- +function usage() { + cat < + +COPYRIGHT + + Copyright (c) 2015 IETF Trust and the persons identified as authors of + the code. All rights reserved. License 'Simplified BSD', as specified + in http://opensource.org/licenses/BSD-3-Clause. + +EOF + +} + +# ---------------------------------------------------------------------- +function die() { + echo -e "\n$program: error: $*" >&2 + exit 1 +} + +function note() { + if [ -n "$VERBOSE" ]; then echo -e "$*"; fi +} + +# ---------------------------------------------------------------------- +function version() { + echo -e "$program $version" +} + +# ---------------------------------------------------------------------- +trap 'echo "$program($LINENO): Command failed with error code $? ([$$] $0 $*)"; exit 1' ERR + + +# ---------------------------------------------------------------------- +# Option parsing + +# Options +shortopts=hvV +longopts=help,verbose,version + +if [ "$(uname)" = "Linux" ]; then + args=$(getopt -o "$shortopts" --long "$longopts" -n '$program' -- $SV "$@") + if [ $? != 0 ] ; then die "Terminating..." >&2 ; exit 1 ; fi + eval set -- "$args" + sed="sed -r" +else + # Darwin, BSDs + args=$(getopt -o$shortopts $SV $*) + if [ $? != 0 ] ; then die "Terminating..." >&2 ; exit 1 ; fi + set -- $args + sed="sed -E" +fi + +while true ; do + case "$1" in + -h| --help) usage; exit;; # Show this help, then exit + -v| --verbose) VERBOSE=1;; # Be more talkative + -V| --version) version; exit;; # Show program version, then exit + --) shift; break;; + *) die "Internal error, inconsistent option specification: '$1'";; + esac + shift +done + +# ---------------------------------------------------------------------- +# The program itself + +echo "Gathering info ..." +MYSQLDIR="$(/usr/sbin/mysqld --verbose --help 2>/dev/null | awk '$1 == "datadir" { print $2; exit }')" +MYSQLDIR=${MYSQLDIR%/} +DATADIR=$parent/data + +# echo "Checking if MySQL base data exists ..." +# if [ ! -d $MYSQLDIR/mysql ]; then +# die "Expected the directory $MYSQLDIR/mysql/ to exist -- have you downloaded and unpacked the IETF binary database tarball?" +# fi + + +# echo "Checking if the IETF database exists at $MYSQLDIR ..." +# if [ ! -d $MYSQLDIR/ietf_utf8 ]; then +# echo "Creating database ..." +# mysqladmin -u root --default-character-set=utf8 create ietf_utf8 +# +# echo "Setting up permissions ..." +# mysql -u root ietf_utf8 <<< "GRANT ALL PRIVILEGES ON ietf_utf8.* TO django@localhost IDENTIFIED BY 'RkTkDPFnKpko'; FLUSH PRIVILEGES;" +# fi + +echo "Fetching database dump ..." +wget -N -P $DATADIR http://www.ietf.org/lib/dt/sprint/ietf_utf8.sql.gz + +echo "Loading database ..." +gunzip < $DATADIR/ietf_utf8.sql.gz \ + | pv --progress --bytes --rate --eta --size $(gzip --list --quiet $DATADIR/ietf_utf8.sql.gz | awk '{ print $2 }') \ + | sed -e 's/ENGINE=MyISAM/ENGINE=InnoDB/' \ + | mysql --host=localhost --user=django --password=RkTkDPFnKpko -s -f ietf_utf8 + +