MariaDB WIP

This commit is contained in:
Miguel Martinez
2015-06-08 19:29:38 -07:00
parent dc1d5097ae
commit fc5974c366
3 changed files with 26 additions and 42 deletions

View File

@@ -1,9 +1,11 @@
FROM ubuntu-debootstrap:14.04
MAINTAINER Bitnami
ENV BITNAMI_PREFIX=/usr/local/bitnami
ENV BITNAMI_APP_NAME mariadb
ENV BITNAMI_APP_VERSION 5.5.42-0
ENV BITNAMI_APP_DIR=$BITNAMI_PREFIX/mysql
ENV BITNAMI_VOL_PREFIX=/bitnami/$BITNAMI_APP_NAME
ENV BITNAMI_APP_VERSION 5.5.42-0
ADD https://storage.googleapis.com/bitnami-artifacts/install.sh?GoogleAccessId=432889337695-e1gggo94k5qubupjsb35tajs91bdu0hg@developer.gserviceaccount.com&Expires=1434934078&Signature=QNkAu%2F8E2RlalSQy4n1sxMhsGKF%2FVltr6zu65HU6A9H0HKOgl6u9etqy9w6OwD4DsLMxYuy2uymOK3iDc5RbfkAMncKI1zJpxcwRQ4Mt43Oe8PBXKbQYcZ7mQaYPtpnjYblDs1S2p12Pu5NTDJHK2hJ1MrIUYwBup5n60R6OJRI%3D /tmp/install.sh
COPY post-install.sh /tmp/post-install.sh
@@ -14,13 +16,14 @@ RUN sh /tmp/install.sh\
--base_password bitnami --mysql_password bitnami --mysql_allow_all_remote_connections 1 --disable-components common --mysql_init_data_dir 0
# Temporary, should be removed from installer
RUN rm -rf /usr/local/bitnami/mysql/data
RUN rm -rf $BITNAMI_APP_DIR/data
ENV PATH /usr/local/bitnami/mysql/bin:$PATH
ENV PATH $BITNAMI_APP_DIR/bin:$PATH
EXPOSE 3306
VOLUME ["/data", "/conf", "/logs"]
VOLUME ["$BITNAMI_VOL_PREFIX/data", "$BITNAMI_VOL_PREFIX/conf", "$BITNAMI_VOL_PREFIX/logs"]
COPY entrypoint.sh /entrypoint.sh
ADD https://www.dropbox.com/s/kce54xvd1jmka3h/bitnami-utils.sh?dl=1 /bitnami-utils.sh
ENTRYPOINT ["/entrypoint.sh"]
CMD ["mysqld.bin"]

View File

@@ -1,4 +1,11 @@
#!/bin/bash
set -e
source /bitnami-utils.sh
SERVICE_USER=mysql
program_options(){
echo "--defaults-file=$BITNAMI_APP_DIR/my.cnf --log-error=$BITNAMI_APP_DIR/logs/mysqld.log --basedir=$BITNAMI_APP_DIR --datadir=$BITNAMI_APP_DIR/data --plugin-dir=$BITNAMI_APP_DIR/lib/plugin --user=$SERVICE_USER --socket=$BITNAMI_APP_DIR/tmp/mysql.sock --lower-case-table-names=1 $EXTRA_OPTIONS"
}
# if command starts with an option, prepend mysqld
if [ "${1:0:1}" = '-' ]; then
@@ -7,29 +14,24 @@ if [ "${1:0:1}" = '-' ]; then
fi
if [ ! "$(ls -A /conf)" ]; then
echo "Copying default configuration to /conf/my.cnf..."
echo ""
cp -r /usr/local/bitnami/mysql/conf.defaults/* /usr/local/bitnami/mysql/conf
generate_conf_files
fi
if [ "$1" = 'mysqld.bin' ]; then
set -- "$@" --defaults-file=/usr/local/bitnami/mysql/my.cnf --log-error=/usr/local/bitnami/mysql/logs/mysqld.log --basedir=/usr/local/bitnami/mysql --datadir=/usr/local/bitnami/mysql/data --plugin-dir=/usr/local/bitnami/mysql/lib/plugin --user=mysql --socket=/usr/local/bitnami/mysql/tmp/mysql.sock "--lower-case-table-names=1" $EXTRA_OPTIONS
mkdir -p /usr/local/bitnami/mysql/tmp
chown -R mysql:mysql /usr/local/bitnami/mysql/tmp
set -- $@ `program_options`
mkdir -p $BITNAMI_APP_DIR/tmp
chown -R $SERVICE_USER:$SERVICE_USER $BITNAMI_APP_DIR/tmp
if [ ! "$(ls -A /data)" ]; then
if [ -z "$MYSQL_PASSWORD" ]; then
MYSQL_PASSWORD=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c12)
RANDOM_PASSW=1
fi
echo "Initializing MySQL database..."
echo ""
/usr/local/bitnami/mysql/scripts/mysql_install_db --port=3306 --socket=/usr/local/bitnami/mysql/tmp/mysql.sock --basedir=/usr/local/bitnami/mysql --datadir=/usr/local/bitnami/mysql/data > /dev/null
chown -R mysql:mysql /usr/local/bitnami/mysql/data
$BITNAMI_APP_DIR/scripts/mysql_install_db --port=3306 --socket=$BITNAMI_APP_DIR/tmp/mysql.sock --basedir=$BITNAMI_APP_DIR --datadir=$BITNAMI_APP_DIR/data > /dev/null
chown -R $SERVICE_USER:$SERVICE_USER $BITNAMI_APP_DIR/data
echo "UPDATE mysql.user SET Password=PASSWORD('$MYSQL_PASSWORD') WHERE User='root';" >> /tmp/init_mysql.sql
echo "FLUSH PRIVILEGES;" >> /tmp/init_mysql.sql
@@ -41,33 +43,12 @@ if [ "$1" = 'mysqld.bin' ]; then
set -- "$@" --init-file=/tmp/init_mysql.sql
echo "#########################################################################"
echo "# #"
echo "# Credentials for mariadb: #"
echo "# username: root #"
echo "# password: $MYSQL_PASSWORD #"
echo "# #"
if [ $RANDOM_PASSW ]; then
echo "# The password was generated automatically, if you want to use #"
echo "# your own password please set the MYSQL_PASSWORD environment #"
echo "# variable when running the container. #"
echo "# #"
fi
echo "#########################################################################"
echo ""
print_app_credentials $BITNAMI_APP_NAME root $MYSQL_PASSWORD
else
echo "#########################################################################"
echo "# #"
echo "# Credentials for mariadb: #"
echo "# The MYSQL_PASSWORD was set on first boot. #"
echo "# If you want to regenerate the password recreate this container. #"
echo "# #"
echo "#########################################################################"
echo ""
print_container_already_initialized $BITNAMI_APP_NAME
fi
chown -R mysql:mysql /usr/local/bitnami/mysql/logs
chown -R $SERVICE_USER:$SERVICE_USER $BITNAMI_APP_DIR/logs
fi
exec "$@"

View File

@@ -13,6 +13,6 @@ mv my.cnf conf.defaults/
ln -s $INSTALL_DIR/conf/my.cnf my.cnf
# symlink mount points at root to install dir
ln -s $INSTALL_DIR/conf /conf
ln -s $INSTALL_DIR/data /data
ln -s $INSTALL_DIR/logs /logs
ln -s $INSTALL_DIR/conf $BITNAMI_VOL_PREFIX/conf
ln -s $INSTALL_DIR/data $BITNAMI_VOL_PREFIX/data
ln -s $INSTALL_DIR/logs $BITNAMI_VOL_PREFIX/logs