Skip to content
Snippets Groups Projects
Commit 965f16bb authored by Anel Husakovic's avatar Anel Husakovic
Browse files

Remove stopper service from automation script

parent 2fa43371
No related branches found
No related tags found
No related merge requests found
dump-data/*
\ No newline at end of file
...@@ -29,6 +29,8 @@ services: ...@@ -29,6 +29,8 @@ services:
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD} MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MARIADB_USER: ${DB_USER} MARIADB_USER: ${DB_USER}
MARIADB_PASSWORD: ${DB_PASSWORD} MARIADB_PASSWORD: ${DB_PASSWORD}
MARIADB_DB: ${DB_DATABASE}
MYSQL_CONT_NAME: ${MYSQL_name}
container_name: ${MARIADB_DUMP_name} container_name: ${MARIADB_DUMP_name}
image: mariadb:lts image: mariadb:lts
depends_on: depends_on:
...@@ -40,28 +42,11 @@ services: ...@@ -40,28 +42,11 @@ services:
interval: 20s interval: 20s
timeout: 20s timeout: 20s
retries: 3 retries: 3
# command: >
# bash -c "
# echo 'MariaDB service started. Dump MySQL data ...'
# mariadb-dump -h mysql-container -uroot -psecret testdb > /etc/dump/mysql-dump-data.sql"
# user: ${UID}:${EUID}
volumes: volumes:
- mysqldump:/etc/dump/ - mysqldump:/etc/dump/
# This will not exit container, but command: will
- ./dump-mysql.sh:/docker-entrypoint-initdb.d/dump-mysql.sh - ./dump-mysql.sh:/docker-entrypoint-initdb.d/dump-mysql.sh
networks: networks:
- backend - backend
# entrypoint: ["/docker-entrypoint-initdb.d/dump-mysql.sh"]
# We cannot share the same dump directory, we need to stop mariadb-dump
stopper:
image: docker:20.10
depends_on:
mariadb-dump:
condition: service_healthy
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: ["sh", "-c", "docker stop mariadb-container-dump"]
# Sidecar for insert dump file # Sidecar for insert dump file
mariadb-migrated-from-mysql8: mariadb-migrated-from-mysql8:
...@@ -69,11 +54,13 @@ services: ...@@ -69,11 +54,13 @@ services:
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD} MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MARIADB_USER: ${DB_USER} MARIADB_USER: ${DB_USER}
MARIADB_PASSWORD: ${DB_PASSWORD} MARIADB_PASSWORD: ${DB_PASSWORD}
MARIADB_DB: ${DB_DATABASE}
container_name: ${MARIADB_MIGRATED_name} container_name: ${MARIADB_MIGRATED_name}
image: mariadb:lts image: mariadb:lts
depends_on: depends_on:
mariadb-dump: mariadb-dump:
condition: service_completed_successfully condition: service_healthy
# restart: true
volumes: volumes:
- mysqldump:/etc/dump/ - mysqldump:/etc/dump/
- ./migrate-mariadb.sh:/docker-entrypoint-initdb.d/migrate-mariadb.sh - ./migrate-mariadb.sh:/docker-entrypoint-initdb.d/migrate-mariadb.sh
...@@ -82,7 +69,7 @@ services: ...@@ -82,7 +69,7 @@ services:
volumes: volumes:
dbdata: {} dbdata: {}
# sudo chown -R 999:999 ${PWD}/dump-data # host # sudo chown -R 999:999 ${PWD}/dump-data # on host before running this file
mysqldump: mysqldump:
driver: local driver: local
driver_opts: driver_opts:
......
-- MariaDB dump 10.19 Distrib 10.11.6-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: mysql-container Database: testdb
-- ------------------------------------------------------
-- Server version 8.3.0
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `countries`
--
DROP TABLE IF EXISTS `countries`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `countries` (
`name` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `countries`
--
LOCK TABLES `countries` WRITE;
/*!40000 ALTER TABLE `countries` DISABLE KEYS */;
INSERT INTO `countries` VALUES
('Bosnia & Herzegovina');
/*!40000 ALTER TABLE `countries` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2024-02-12 13:48:45
-- MariaDB dump 10.19 Distrib 10.11.6-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: mysql-container Database: testdb
-- ------------------------------------------------------
-- Server version 8.3.0
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `countries`
--
DROP TABLE IF EXISTS `countries`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `countries` (
`name` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `countries`
--
LOCK TABLES `countries` WRITE;
/*!40000 ALTER TABLE `countries` DISABLE KEYS */;
INSERT INTO `countries` VALUES
('Bosnia & Herzegovina');
/*!40000 ALTER TABLE `countries` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2024-02-12 13:48:45
#!/bin/bash #!/bin/bash
echo 'MariaDB service started. Dump MySQL data ...' echo 'MariaDB service started.'
# Run your commands and exit container # Run your commands and exit container
whoami # mysql" whoami # mysql
# sh -c "chown -R mysql:mysql /etc/dump" # Operation permitted # sh -c "chown -R mysql:mysql /etc/dump" # Operation permitted
# sh -c "ls -la /etc/dump" echo 'Dump and compress MySQL data with changed collation ...'
sh -c "mariadb-dump -h mysql-container -uroot -psecret testdb > /etc/dump/mysql-dump-data.sql" fileName="mysql-dump-data.sql.zst"
sh -c "ls -la /etc/dump/" if [ -f "$fileName" ]; then
echo "List before" echo "File ${fileName} exists. Remove it ... "
sh -c "cp /etc/dump/mysql-dump-data.sql /etc/dump/mysql-dump-data-utf8mb4_unicode_ci.sql" rm "$fileName"
sh -c "ls -la /etc/dump/" fi
echo "List after" sh -c "mariadb-dump -h${MYSQL_CONT_NAME} -uroot -p${MARIADB_ROOT_PASSWORD} ${MARIADB_DB} | sed 's/utf8mb4_0900/uca1400/g' | zstd > /etc/dump/${fileName}"
sh -c "sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' /etc/dump/mysql-dump-data-utf8mb4_unicode_ci.sql" \ No newline at end of file
\ No newline at end of file
#!/bin/bash #!/bin/bash
echo "Extract file"
oldFile="/etc/dump/mysql-dump.sql"
if [ -f "$oldFile" ]; then
echo "Old file ${oldFile} exists. Remove it ... "
rm "$oldFile"
echo "Extracting ..."
fi
sh -c "zstd -d /etc/dump/mysql-dump-data.sql.zst -o /etc/dump/mysql-dump.sql"
echo "Show data in MariaDB" echo "Show data in MariaDB"
mariadb -uroot -psecret -e "create database testdb;" mariadb -uroot -p"${MARIADB_ROOT_PASSWORD}" -e "create database testdb;"
mariadb -uroot -psecret testdb < /etc/dump/mysql-dump-data-utf8mb4_unicode_ci.sql mariadb -uroot -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DB}" < /etc/dump/mysql-dump.sql
mariadb -uroot -psecret -e "show databases; select * from countries;" mariadb -uroot -p"${MARIADB_ROOT_PASSWORD}" -e "show databases; select * from testdb.countries;"
\ No newline at end of file \ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment