From 060c057a0ca9f27f7a30eb5f22bbf3f07771fc38 Mon Sep 17 00:00:00 2001
From: Lars Kellogg-Stedman <lars@redhat.com>
Date: Thu, 18 Sep 2014 10:56:30 -0400
Subject: [PATCH 1/2] updated based on official mysql image

---
 docker/mariadb/Dockerfile    |  24 ++----
 docker/mariadb/entrypoint.sh |  47 +++++++++++
 docker/mariadb/simple.cnf    | 152 -----------------------------------
 docker/mariadb/start         |  43 ----------
 4 files changed, 54 insertions(+), 212 deletions(-)
 create mode 100755 docker/mariadb/entrypoint.sh
 delete mode 100644 docker/mariadb/simple.cnf
 delete mode 100755 docker/mariadb/start

diff --git a/docker/mariadb/Dockerfile b/docker/mariadb/Dockerfile
index 0d29bae902..5b5e8a3ca4 100644
--- a/docker/mariadb/Dockerfile
+++ b/docker/mariadb/Dockerfile
@@ -1,21 +1,11 @@
 FROM rhel7
-MAINTAINER Lon Hohberger <lon@redhat.com>
-# Started with the one from:
-#  Clayton Coleman <ccoleman@redhat.com>
+MAINTAINER Lars Kellogg-Stedman <lars@redhat.com>
 
-RUN yum install -y \
-	mysql \
-	mariadb-galera-server \
-	&& yum clean all
+RUN yum -y install mariadb-galera-server
+ADD /entrypoint.sh /entrypoint.sh
 
-RUN mkdir -p /var/log/mysql && \
-    touch /var/log/mysql/.keep /var/lib/mysql/.keep && \
-    chown -R mysql:mysql /var/log/mysql /var/lib/mysql
-VOLUME ["/var/lib/mysql", "/var/log/mysql"]
-USER mysql
+VOLUME /var/lib/mysql
+VOLUME /var/log/mysql
 
-ADD ./simple.cnf /etc/my.cnf.d/
-ADD ./start /usr/bin/run
-
-EXPOSE 3306
-ENTRYPOINT ["/usr/bin/run"]
+ENTRYPOINT ["/entrypoint.sh"]
+CMD ["mysqld_safe"]
diff --git a/docker/mariadb/entrypoint.sh b/docker/mariadb/entrypoint.sh
new file mode 100755
index 0000000000..898823352d
--- /dev/null
+++ b/docker/mariadb/entrypoint.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+set -e
+
+: ${MYSQL_ROOT_PASSWORD:=$DB_ROOT_PASSWORD}
+
+if [ -z "$(ls -A /var/lib/mysql)" -a "${1%_safe}" = 'mysqld' ]; then
+	PATH=/usr/libexec:$PATH
+	export PATH
+
+	if [ -z "$MYSQL_ROOT_PASSWORD" ]; then
+		echo >&2 'error: database is uninitialized and MYSQL_ROOT_PASSWORD not set'
+		echo >&2 '  Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?'
+		exit 1
+	fi
+	
+	mysql_install_db --user=mysql --datadir=/var/lib/mysql
+	
+	# These statements _must_ be on individual lines, and _must_ end with
+	# semicolons (no line breaks or comments are permitted).
+	# TODO proper SQL escaping on ALL the things D:
+	TEMP_FILE='/tmp/mysql-first-time.sql'
+	cat > "$TEMP_FILE" <<-EOSQL
+		DELETE FROM mysql.user ;
+		CREATE USER 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ;
+		GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ;
+		DROP DATABASE IF EXISTS test ;
+	EOSQL
+	
+	if [ "$MYSQL_DATABASE" ]; then
+		echo "CREATE DATABASE IF NOT EXISTS $MYSQL_DATABASE ;" >> "$TEMP_FILE"
+	fi
+	
+	if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then
+		echo "CREATE USER '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$TEMP_FILE"
+		
+		if [ "$MYSQL_DATABASE" ]; then
+			echo "GRANT ALL ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'%' ;" >> "$TEMP_FILE"
+		fi
+	fi
+	
+	echo 'FLUSH PRIVILEGES ;' >> "$TEMP_FILE"
+	
+	set -- "$@" --init-file="$TEMP_FILE"
+fi
+
+chown -R mysql:mysql /var/lib/mysql
+exec "$@"
diff --git a/docker/mariadb/simple.cnf b/docker/mariadb/simple.cnf
deleted file mode 100644
index f323be9b6e..0000000000
--- a/docker/mariadb/simple.cnf
+++ /dev/null
@@ -1,152 +0,0 @@
-# Simple MariaDB database server configuration file.
-#
-# =================================================================
-# Base configuration courtesy of Open Query (http://openquery.com/)
-# For production use, case-specific preparation is still required.
-# 2009-10-07
-#
-# This is *not* an optimised config, merely a more sane baseline:
-# - binary and slow log enabled, with enhancements
-# - InnoDB default (e.g., ACID out-of-the-box, same as on Windows)
-# - strict mode (for proper input checks, same as on Windows)
-# - various other useful settings
-# - make use of MariaDB/Percona/OurDelta enhancements/extensions
-#
-# For tuning assistance, please see http://openquery.com/services
-# =================================================================
-
-[client]
-default-character-set  = utf8
-
-# Here is entries for some specific programs
-# The following values assume you have at least 32M ram
-
-# This was formally known as [safe_mysqld]. Both versions are currently parsed.
-[mysqld_safe]
-nice		= 0
-log-error=/var/log/mysql/mysqld.log
-
-[server]
-#
-# * Basic Settings
-#
-user		= mysql
-tmpdir		= /tmp
-skip-external-locking
-
-#
-# * Fine Tuning
-#
-max_connections		= 32
-connect_timeout		= 5
-wait_timeout		= 600
-max_allowed_packet	= 16M
-thread_cache_size       = 128
-sort_buffer_size	= 4M
-bulk_insert_buffer_size	= 16M
-tmp_table_size		= 32M
-max_heap_table_size	= 32M
-#
-# * MyISAM
-#
-# This replaces the startup script and checks MyISAM tables if needed
-# the first time they are touched. On error, make copy and try a repair.
-myisam_recover          = BACKUP
-key_buffer_size		= 128M
-#open-files-limit	= 2000
-table_cache             = 400
-myisam_sort_buffer_size	= 512M
-concurrent_insert	= 2
-read_buffer_size	= 2M
-read_rnd_buffer_size	= 1M
-#
-# * Query Cache Configuration
-#
-# Cache only tiny result sets, so we can fit more in the query cache.
-query_cache_limit		= 128K
-query_cache_size		= 64M
-# for more write intensive setups, set to DEMAND or OFF
-#query_cache_type		= DEMAND
-#
-# * Logging and Replication
-#
-# Both location gets rotated by the cronjob.
-# Be aware that this log type is a performance killer.
-# As of 5.1 you can enable the log at runtime!
-#general_log_file        = /var/log/mysql/mysql.log
-#general_log             = 1
-#
-# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
-#
-# we do want to know about network errors and such
-log_warnings		= 2
-#
-# Here you can see queries with especially long duration
-slow_query_log
-slow_query_log_file		= /var/log/mysql/mariadb-slow.log
-long_query_time = 10
-#log_slow_rate_limit	= 1000
-log_slow_verbosity	= query_plan
-
-#log-queries-not-using-indexes
-log_slow_admin_statements
-#
-# The following can be used as easy to replay backup logs or for replication.
-# note: if you are setting up a replication slave, see README.Debian about
-#       other settings you may need to change.
-#server-id		= 1
-#report_host		= master1
-#auto_increment_increment = 2
-#auto_increment_offset	= 1
-log_bin			= /var/log/mysql/mariadb-bin
-log_bin_index		= /var/log/mysql/mariadb-bin.index
-# not fab for performance, but safer
-#sync_binlog		= 1
-expire_logs_days	= 10
-max_binlog_size         = 100M
-# slaves
-#relay_log		= /var/log/mysql/relay-bin
-#relay_log_index	= /var/log/mysql/relay-bin.index
-#relay_log_info_file	= /var/log/mysql/relay-bin.info
-#log_slave_updates
-#read_only
-#
-#
-# * InnoDB
-#
-# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
-# Read the manual for more InnoDB related options. There are many!
-default_storage_engine	= InnoDB
-sql_mode		= NO_ENGINE_SUBSTITUTION,TRADITIONAL
-# you can't just change log file size, requires special procedure
-innodb_log_file_size	= 16M
-innodb_buffer_pool_size	= 265M
-innodb_log_buffer_size	= 8M
-innodb_file_per_table	= 1
-innodb_open_files	= 400
-innodb_io_capacity	= 400
-innodb_flush_method	= O_DIRECT
-#
-# * Security Features
-#
-# Read the manual, too, if you want chroot!
-# chroot = /var/lib/mysql/
-#
-# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
-#
-# ssl-ca=/etc/mysql/cacert.pem
-# ssl-cert=/etc/mysql/server-cert.pem
-# ssl-key=/etc/mysql/server-key.pem
-
-
-
-[mysqldump]
-quick
-quote-names
-max_allowed_packet	= 16M
-
-[mysql]
-#no-auto-rehash	# faster start of mysql but no tab completition
-
-[isamchk]
-key_buffer		= 16M
diff --git a/docker/mariadb/start b/docker/mariadb/start
deleted file mode 100755
index 29db0bf643..0000000000
--- a/docker/mariadb/start
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash -e
-
-ln -s /dev/stderr /var/log/mysql/mysqld.log
-if [ ! -f /var/lib/mysql/.created ]; then
-  function wait_for_mysqld_start {
-    for i in {1..30}; do
-      if echo 'select 1' | mysql -u root > /dev/null 2>&1; then
-        return 0
-      fi
-      sleep 1
-    done
-
-    echo "MariaDB did not start in time"
-    exit 1
-  }
-
-  host_ip=${HOST_IP:-127.0.0.1}
-  password=${DB_ROOT_PASSWORD:-redhat}
-  #keystone_pass=${KEYSTONE_PASSWORD:-redhat}
-  #cinder_pass=${CINDER_PASSWORD:-redhat}
-  #glance_pass=${KEYSTONE_PASSWORD:-redhat}
-  #nova_pass=${KEYSTONE_PASSWORD:-redhat}
-  #heat_pass=${KEYSTONE_PASSWORD:-redhat}
-  #keystone_pass=${KEYSTONE_PASSWORD:-redhat}
-
-  /usr/bin/mysql_install_db -u mysql
-
-  /usr/libexec/mysqld &
-  pid=$!
-
-  wait_for_mysqld_start
-
-  echo "Building OpenStack Database tables..."
-
-  /usr/bin/mysqladmin -u root password $password
-
-  touch /var/lib/mysql/.created
-  kill -TERM $pid
-
-  echo "Starting mysqld ..."
-fi
-
-exec /usr/libexec/mysqld

From fd2b9d7089be32561b4b2b0590d286ccbd128b2d Mon Sep 17 00:00:00 2001
From: Lon Hohberger <lhh@redhat.com>
Date: Thu, 18 Sep 2014 16:01:30 -0400
Subject: [PATCH 2/2] Add rhel-osp-base Dockerfile

Signed-off-by: Lon Hohberger <lon@redhat.com>
---
 docker/rhel-osp-base/Dockerfile | 88 +++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)
 create mode 100644 docker/rhel-osp-base/Dockerfile

diff --git a/docker/rhel-osp-base/Dockerfile b/docker/rhel-osp-base/Dockerfile
new file mode 100644
index 0000000000..6e0bead1ba
--- /dev/null
+++ b/docker/rhel-osp-base/Dockerfile
@@ -0,0 +1,88 @@
+FROM rhel7
+MAINTAINER Lon Hohberger <lon@redhat.com>
+
+RUN yum install -y \
+	openstack-utils \
+	pyparsing \
+	python-alembic \
+	python-amqp \
+	python-amqplib \
+	python-anyjson \
+	python-boto \
+	python-ceilometerclient \
+	python-cheetah \
+	python-cinderclient \
+	python-cliff \
+	python-cmd2 \
+	python-croniter \
+	python-crypto \
+	python-d2to1 \
+	python-docutils \
+	python-dogpile-cache \
+	python-dogpile-core \
+	python-empy \
+	python-eventlet \
+	python-flask \
+	python-futures \
+	python-glanceclient \
+	python-greenlet \
+	python-heatclient \
+	python-httplib2 \
+	python-iso8601 \
+	python-itsdangerous \
+	python-jinja2 \
+	python-jsonpatch \
+	python-jsonpath-rw \
+	python-jsonpointer \
+	python-jsonschema \
+	python-keyring \
+	python-keystoneclient \
+	python-kombu \
+	python-lesscpy \
+	python-lockfile \
+	python-markdown \
+	python-migrate \
+	python-msgpack \
+	python-netifaces \
+	python-networkx \
+	python-neutronclient \
+	python-novaclient \
+	python-oauthlib \
+	python-openstackclient \
+	python-oslo-config \
+	python-oslo-messaging \
+	python-oslo-rootwrap \
+	python-oslo-vmware \
+	python-paramiko \
+	python-passlib \
+	python-paste-deploy \
+	python-pbr \
+	python-pecan \
+	python-ply \
+	python-prettytable \
+	python-psutil \
+	python-pycadf \
+	python-pygments \
+	python-pymongo \
+	python-qpid \
+	python-repoze-lru \
+	python-requests \
+	python-routes \
+	python-saharaclient \
+	python-simplegeneric \
+	python-simplejson \
+	python-singledispatch \
+	python-six \
+	python-sqlalchemy \
+	python-stevedore \
+	python-swiftclient \
+	python-taskflow \
+	python-troveclient \
+	python-versiontools \
+	python-warlock \
+	python-webob \
+	python-websockify \
+	python-webtest \
+	python-werkzeug \
+	python-wsme \
+	&& yum clean all