Docker init
This commit is contained in:
36
docker/start.sh
Executable file
36
docker/start.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/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}"
|
||||
Reference in New Issue
Block a user