1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #!/bin/bash
- . mailcow.conf
- ./build-network.sh
- NAME="mysql-mailcow"
- reconf() {
- echo "Installing database schema (this will not overwrite existing data)"
- echo "It may take a while for MySQL to warm up, please wait..."
- until docker exec ${NAME} /bin/bash -c "mysql -u'${DBUSER}' -p'${DBPASS}' ${DBNAME} < /assets/init.sql"; do
- echo "Trying again in 2 seconds..."
- sleep 2
- done
- echo "Done."
- }
- insert_admin() {
- echo 'Setting mailcow UI admin login to "admin:moohoo"...'
- echo "It may take a while for MySQL to warm up, please wait..."
- until docker exec ${NAME} /bin/bash -c "mysql -u'${DBUSER}' -p'${DBPASS}' ${DBNAME} < /assets/pw.sql"; do
- echo "Trying again in 2 seconds..."
- sleep 2
- done
- echo "Done."
- }
- client() {
- echo "==============================="
- echo "DB: ${DBNAME} - USER: ${DBUSER}"
- echo "==============================="
- docker exec -it ${NAME} /bin/bash -c "mysql -u'${DBUSER}' -p'${DBPASS}' ${DBNAME}"
- }
- if [[ ${1} == "--init-schema" ]]; then
- reconf
- exit 0
- elif [[ ${1} == "--client" ]]; then
- client
- exit 0
- elif [[ ${1} == "--reset-admin" ]]; then
- insert_admin
- exit 0
- fi
- echo "Stopping and removing containers with name tag ${NAME}..."
- if [[ ! -z $(docker ps -af "name=${NAME}" -q) ]]; then
- docker stop $(docker ps -af "name=${NAME}" -q)
- docker rm $(docker ps -af "name=${NAME}" -q)
- fi
- if [[ ! -z "$(docker images -q mysql:${DBVERS})" ]]; then
- read -r -p "Found image locally. Rebuild anyway? [y/N] " response
- response=${response,,}
- if [[ $response =~ ^(yes|y)$ ]]; then
- docker rmi mysql:${DBVERS}
- fi
- fi
- docker run \
- -v ${PWD}/data/db/mysql/:/var/lib/mysql/ \
- -v ${PWD}/data/conf/mysql/:/etc/mysql/conf.d/ \
- -v ${PWD}/data/assets/mysql:/assets \
- --name=${NAME} \
- --network=${DOCKER_NETWORK} \
- -h mysql \
- --network-alias mysql \
- -e MYSQL_ROOT_PASSWORD=${DBROOT} \
- -e MYSQL_DATABASE=${DBNAME} \
- -e MYSQL_USER=${DBUSER} \
- -e MYSQL_PASSWORD=${DBPASS} \
- -d mysql:${DBVERS}
- reconf
- read -r -p "Do you want to reset mailcow admin to admin:moohoo? [y/N] " response
- response=${response,,}
- if [[ $response =~ ^(yes|y)$ ]]; then
- insert_admin
- fi
|