Files
IPZ_1/docker/start.sh
2026-05-17 16:02:29 +02:00

37 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
CONTAINER="ewc2025-mysql"
IMAGE="mysql:8.4"
ROOT_PASSWORD="ewc2025root"
DATABASE="ewc2025"
PORT="13306"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SQL_DIR="$(cd "${SCRIPT_DIR}/../sql" && pwd)"
if docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER}$"; then
echo "Container '${CONTAINER}' already exists — starting it."
docker start "${CONTAINER}"
else
echo "Creating and starting '${CONTAINER}'."
docker run -d \
--name "${CONTAINER}" \
-e MYSQL_ROOT_PASSWORD="${ROOT_PASSWORD}" \
-e MYSQL_DATABASE="${DATABASE}" \
-p "${PORT}:3306" \
-v "${CONTAINER}-data:/var/lib/mysql" \
-v "${SQL_DIR}/schema.sql:/docker-entrypoint-initdb.d/01_schema.sql:ro" \
"${IMAGE}"
fi
echo "Waiting for MySQL to be ready..."
until docker exec "${CONTAINER}" mysqladmin ping -uroot -p"${ROOT_PASSWORD}" --silent 2>/dev/null; do
sleep 1
done
echo "MySQL 8.4 is up."
echo " Host: 127.0.0.1:${PORT}"
echo " Database: ${DATABASE}"
echo " User: root / ${ROOT_PASSWORD}"