Added in mysql conf files; trying to get correct php extensions for magento to run
This commit is contained in:
parent
7b556a55dd
commit
9c69c4ee1a
7 changed files with 263 additions and 9 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
public_html/*
|
|
@ -17,20 +17,23 @@ php:
|
|||
- app
|
||||
|
||||
app:
|
||||
image: php:7.0-fpm
|
||||
image: php:5.6-fpm
|
||||
volumes:
|
||||
- ./public_html:/var/www/html
|
||||
command: "true"
|
||||
|
||||
mysql:
|
||||
image: mysql:latest
|
||||
build: ./mysql/
|
||||
volumes_from:
|
||||
- data
|
||||
- app
|
||||
ports:
|
||||
- 3306:3306
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: password
|
||||
MYSQL_DATABASE: project
|
||||
MYSQL_USER: project
|
||||
MYSQL_PASSWORD: project
|
||||
MYSQL_ROOT_PASSWORD: 123123
|
||||
MYSQL_DATABASE: magento
|
||||
MYSQL_USER: magento
|
||||
MYSQL_PASSWORD: magento
|
||||
|
||||
data:
|
||||
image: mysql:latest
|
||||
|
|
5
mysql/Dockerfile
Normal file
5
mysql/Dockerfile
Normal file
|
@ -0,0 +1,5 @@
|
|||
FROM mysql:latest
|
||||
RUN apt-get update -y && apt-get install -y vim
|
||||
COPY ./my.cnf /etc/mysql/my.cnf
|
||||
COPY ./mage-dbdump.sh /opt/mage-dbdump.sh
|
||||
RUN chmod 644 /etc/mysql/my.cnf
|
197
mysql/mage-dbdump.sh
Normal file
197
mysql/mage-dbdump.sh
Normal file
|
@ -0,0 +1,197 @@
|
|||
#!/bin/bash
|
||||
|
||||
IGNORE_TABLES=( dataflow_batch_export dataflow_batch_import log_customer log_quote log_summary log_summary_type log_url log_url_info log_visitor log_visitor_info log_visitor_online report_event index_event enterprise_logging_event_changes core_cache core_cache_tag core_session core_cache_tag )
|
||||
IGNORE_TABLES_AGGRESSIVE=( report_compared_product_index report_viewed_product_index sales_flat_quote_address sales_flat_quote_shipping_rate enterprise_customer_sales_flat_quote enterprise_customer_sales_flat_quote_address sales_flat_quote )
|
||||
TRUNCATE_TABLES=( dataflow_batch_export dataflow_batch_import log_customer log_quote log_summary log_summary_type log_url log_url_info log_visitor log_visitor_info log_visitor_online report_viewed_product_index report_compared_product_index report_event index_event index_process_event )
|
||||
CONFIG_FILE="./app/etc/local.xml"
|
||||
DUMP_FILE="./var/db.sql"
|
||||
|
||||
function usage()
|
||||
{
|
||||
cat <<EOF
|
||||
Usage: $0 [OPTIONS]
|
||||
Version: 1.03
|
||||
Author: www.sonassi.com
|
||||
Download: sys.sonassi.com/mage-dbdump.sh
|
||||
|
||||
This script is used to dump or restore Magento databases by reading
|
||||
the local.xml file and parsing the DB credentials. It strips out
|
||||
superfluous data (logs etc.) for smaller and quicker dumps. It also
|
||||
optimises the dump by avoiding locks where possible.
|
||||
|
||||
Dumps to $DUMP_FILE(.gz)
|
||||
|
||||
If you have pigz installed, it will use that over gzip for parallel
|
||||
compression/de-compression.
|
||||
|
||||
OPTIONS:
|
||||
-a Advertise awesome hosting
|
||||
-d Dump the database
|
||||
-r Restore the databse
|
||||
-z Use gzip compression (use with -d or -r)
|
||||
-e Use extended inserts
|
||||
-h Show help/usage
|
||||
-f Full dump, do not exclude any tables
|
||||
-A Aggressive dump, exclude (${IGNORE_TABLES_AGGRESSIVE[@]})
|
||||
-B Exclude additional custom tables (space separated, within "double quotes")
|
||||
-F Do not ask questions and force all actions
|
||||
-i Interactive, enter a mysql> prompt
|
||||
-c Clean log and index tables
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
function error()
|
||||
{
|
||||
echo -e "Error: $1"
|
||||
[[ ! "$2" == "noexit" ]] && exit 1
|
||||
}
|
||||
|
||||
function getParam()
|
||||
{
|
||||
RETVAL=$(grep -Eoh "<$1>(<!\[CDATA\[)?(.*)(\]\]>)?<\/$1>" $TMP_FILE | sed "s#<$1><!\[CDATA\[##g;s#\]\]><\/$1>##g")
|
||||
if [[ "$2" == "sanitise" ]]; then
|
||||
RETVAL=$(echo "$RETVAL" | sed 's/"/\\\"/g')
|
||||
fi
|
||||
echo -e "$RETVAL"
|
||||
}
|
||||
|
||||
function compress()
|
||||
{
|
||||
while read DATA; do
|
||||
[[ ! "$OPT_z" == "" ]] && (echo "$DATA" | $GZIP_CMD -) || echo "$DATA"
|
||||
done
|
||||
}
|
||||
|
||||
function mysqldumpit()
|
||||
{
|
||||
|
||||
if [[ "$OPT_f" == "" ]]; then
|
||||
[[ ! "$OPT_A" == "" ]] && IGNORE_TABLES=( ${IGNORE_TABLES[@]} ${IGNORE_TABLES_AGGRESSIVE[@]} )
|
||||
[[ ! "$OPT_B" == "" ]] && IGNORE_TABLES=( ${IGNORE_TABLES[@]} $OPT_B )
|
||||
for TABLE in "${IGNORE_TABLES[@]}"; do
|
||||
IGNORE_STRING="$IGNORE_STRING --ignore-table=$DBNAME.$TABLE_PREFIX$TABLE"
|
||||
done
|
||||
fi
|
||||
|
||||
# We use --single-transaction in favour of --lock-tables=false , its slower, but less potential for unreliable dumps
|
||||
echo "SET SESSION sql_mode='NO_AUTO_VALUE_ON_ZERO';"
|
||||
( mysqldump -p"$DBPASS" $MYSQL_ARGS --no-data --routines --triggers --single-transaction; \
|
||||
mysqldump -p"$DBPASS" $MYSQL_ARGS $IGNORE_STRING --no-create-db --single-transaction ) | sed 's/DEFINER=[^*]*\*/\*/g'
|
||||
}
|
||||
|
||||
function question()
|
||||
{
|
||||
[[ ! "$OPT_F" == "" ]] && return 0
|
||||
echo -n "$1 [y/N]: "
|
||||
read CONFIRM
|
||||
[[ "$CONFIRM" == "y" ]] || [[ "$CONFIRM" == "Y" ]] && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
function message()
|
||||
{
|
||||
STRIP=$(for i in {1..38}; do echo -n "#"; done)
|
||||
echo -e "$STRIP\n$1\n$STRIP"
|
||||
}
|
||||
|
||||
function banner()
|
||||
{
|
||||
cat <<EOT
|
||||
######################################
|
||||
|
||||
(_)
|
||||
___ ___ _ __ __ _ ___ ___ _
|
||||
/ __|/ _ \| '_ \ / _' / __/ __| |
|
||||
\__ \ (_) | | | | (_| \__ \__ \ |
|
||||
|___/\___/|_| |_|\__'_|___/___/_|
|
||||
|
||||
For truly optimised Magento hosting
|
||||
Use http://www.sonassi.com ...
|
||||
|
||||
#####################################
|
||||
|
||||
EOT
|
||||
}
|
||||
|
||||
[ ! -f "$CONFIG_FILE" ] && error "$CONFIG_FILE does not exist"
|
||||
|
||||
while getopts "B:AdrzehfFaic" OPTION; do
|
||||
case $OPTION in
|
||||
a)
|
||||
banner
|
||||
exit 0
|
||||
;;
|
||||
h)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
:)
|
||||
error "Error: -$OPTION requires an argument" noexit
|
||||
exit 1
|
||||
;;
|
||||
\?)
|
||||
error "Error: Unknown option -$OPTION" noexit
|
||||
exit 1
|
||||
;;
|
||||
B)
|
||||
IGNORE_TABLES+=( $OPTARG )
|
||||
;;
|
||||
*)
|
||||
[[ "$OPTARG" == "" ]] && OPTARG='"-'$OPTION' 1"'
|
||||
OPTION="OPT_$OPTION"
|
||||
eval ${OPTION}=$OPTARG
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
[[ "$OPT_c$OPT_i$OPT_d$OPT_r" == "" ]] && usage && exit 1
|
||||
|
||||
which mktemp >/dev/null 2>&1
|
||||
[ $? -eq 0 ] && TMP_FILE=$(mktemp ./var/local.xml.XXXXX) || TMP_FILE="./var/.tmp.local.xml"
|
||||
sed -ne '/default_setup/,/\/default_setup/p' $CONFIG_FILE > $TMP_FILE
|
||||
|
||||
which pigz >/dev/null 2>&1
|
||||
[ $? -eq 0 ] && GZIP_CMD="pigz" || GZIP_CMD="gzip"
|
||||
|
||||
IGNORE_STRING=""
|
||||
DBHOST=$(getParam "host")
|
||||
DBUSER=$(getParam "username")
|
||||
DBPASS=$(getParam "password" "sanitise" )
|
||||
DBNAME=$(getParam "dbname")
|
||||
TABLE_PREFIX=$(getParam "table_prefix")
|
||||
[ -f $TMP_FILE ] && rm $TMP_FILE
|
||||
[[ ! "$OPT_z" == "" ]] && DUMP_FILE="$DUMP_FILE"".gz"
|
||||
|
||||
MYSQL_ARGS="-f -h $DBHOST -u $DBUSER $DBNAME"
|
||||
[[ ! "$OPT_e" == "" ]] && MYSQL_ARGS="$MYSQL_ARGS --extended-insert=FALSE --complete-insert=TRUE"
|
||||
|
||||
if [[ ! "$OPT_r" == "" ]]; then
|
||||
|
||||
[ ! -f "$DUMP_FILE" ] && error "SQL file does not exist"
|
||||
question "Are you sure you want to restore $DUMP_FILE to $DBNAME?"
|
||||
if [ $? -eq 0 ]; then
|
||||
[[ ! "$OPT_z" == "" ]] && $GZIP_CMD -d <$DUMP_FILE | mysql $MYSQL_ARGS -p"$DBPASS" || mysql $MYSQL_ARGS -p"$DBPASS" <$DUMP_FILE
|
||||
message "MYSQL IMPORT COMPLETE"
|
||||
banner
|
||||
fi
|
||||
exit 0
|
||||
|
||||
elif [[ ! "$OPT_c" == "" ]]; then
|
||||
|
||||
for TABLE in ${TRUNCATE_TABLES[@]}; do
|
||||
echo "Cleaning $TABLE ..."
|
||||
mysql $MYSQL_ARGS -p"$DBPASS" -e "TRUNCATE ${TABLE_PREFIX}$TABLE"
|
||||
done
|
||||
|
||||
elif [[ ! "$OPT_i" == "" ]]; then
|
||||
|
||||
mysql $MYSQL_ARGS -p"$DBPASS"
|
||||
|
||||
elif [[ ! "$OPT_d" == "" ]]; then
|
||||
|
||||
[[ ! "$OPT_z" == "" ]] && mysqldumpit | $GZIP_CMD > $DUMP_FILE || mysqldumpit > $DUMP_FILE
|
||||
message "MYSQL DUMP COMPLETE"
|
||||
exit 0
|
||||
|
||||
fi
|
28
mysql/my.cnf
Normal file
28
mysql/my.cnf
Normal file
|
@ -0,0 +1,28 @@
|
|||
[client]
|
||||
port = 3306
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
|
||||
[mysqld_safe]
|
||||
pid-file = /var/run/mysqld/mysqld.pid
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
nice = 0
|
||||
|
||||
[mysqld]
|
||||
skip-host-cache
|
||||
skip-name-resolve
|
||||
user = mysql
|
||||
pid-file = /var/run/mysqld/mysqld.pid
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
port = 3306
|
||||
basedir = /usr
|
||||
datadir = /var/lib/mysql
|
||||
tmpdir = /tmp
|
||||
lc-messages-dir = /usr/share/mysql
|
||||
explicit_defaults_for_timestamp
|
||||
max_allowed_packet = 1024M
|
||||
|
||||
log-error = /var/log/mysql/error.log
|
||||
|
||||
symbolic-links=0
|
||||
|
||||
!includedir /etc/mysql/conf.d/
|
|
@ -1,7 +1,7 @@
|
|||
server {
|
||||
listen 80 default_server;
|
||||
root /var/www/html;
|
||||
index index.html index.php;
|
||||
index index.php;
|
||||
|
||||
charset utf-8;
|
||||
|
||||
|
|
|
@ -1,3 +1,23 @@
|
|||
FROM php:7.0-fpm
|
||||
FROM php:5.6-fpm
|
||||
|
||||
RUN docker-php-ext-install pdo_mysql
|
||||
# Install required php extensions
|
||||
RUN apt-get update -y && apt-get install -y php5-mysql php5-gd php5-curl php5-mcrypt
|
||||
|
||||
# Install composer
|
||||
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
|
||||
php -r "if (hash_file('SHA384', 'composer-setup.php') === '92102166af5abdb03f49ce52a40591073a7b859a86e8ff13338cf7db58a19f7844fbc0bb79b2773bf30791e935dbd938') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" && \
|
||||
php composer-setup.php --install-dir=/usr/bin --filename=composer && \
|
||||
php -r "unlink('composer-setup.php');"
|
||||
|
||||
# Install magerun
|
||||
RUN apt-get install -y wget && \
|
||||
wget https://files.magerun.net/n98-magerun.phar && \
|
||||
apt-get purge -y wget && \
|
||||
mv n98-magerun.phar /usr/bin/ && \
|
||||
echo 'alias magerun="php -f /usr/bin/n98-magerun.phar --"' >> /root/.bashrc
|
||||
|
||||
# Install Accolade Magerun Tools
|
||||
RUN apt-get install -y git && \
|
||||
mkdir -p /usr/local/share/n98-magerun/modules && \
|
||||
cd /usr/local/share/n98-magerun/modules && \
|
||||
git clone https://github.com/Accolades/MagerunTools.git
|
Loading…
Reference in a new issue