Docker-development/maria-db/run.sh

73 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
SCRIPT_PATH=$( cd "$(dirname "$0")" ; pwd -P )
IMAGE_NAME="mariadb"
IMAGE_VERSION="10.1"
SERVICE_NAME=maria-db
source ${SCRIPT_PATH}/../common.shinc
#
# Project specific variables
#
DB_VOLUME=mariadb_shared
BACKUP_DIR=${SCRIPT_PATH}/backup
source ${SCRIPT_PATH}/env.shinc 2> /dev/null
init() {
__init
# Create networks
NETWORKS=(${DB_NETWORK})
__createNetworks
# Create the database container
docker create \
--name ${SERVICE_NAME} \
--restart=unless-stopped \
-v ${DB_VOLUME}:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=${DB_PASSWORD} \
--net ${DB_NETWORK} \
${IMAGE_NAME}:${IMAGE_VERSION}
[[ $? -ne 0 ]] && return 1
__ask_to_start
}
# Used for exporting the whole database filesystem
export() {
stop
local user=$(id -u)
mkdir -p ${BACKUP_DIR} && \
docker run --rm --volumes-from ${SERVICE_NAME} -v ${BACKUP_DIR}:/backup busybox tar cvf /backup/backup.tar /var/lib/mysql && chown -R ${user}:${user} ./backup
if [[ $? -ne 0 ]]; then
__err "Could not create the backup"
exit 2
fi
start
return $?
}
# Used for importing the whole database filesystem
import() {
stop
docker run --rm --volumes-from ${SERVICE_NAME} -v ${BACKUP_DIR}:/backup busybox sh -c "rm -rf /var/lib/mysql/* && tar xvf /backup/backup.tar --directory /"
start
return $?
}
"$@"
exit $?