Docker init

This commit is contained in:
StewKI
2026-05-17 16:02:29 +02:00
parent f562b55b19
commit 8dae336819
4 changed files with 99 additions and 0 deletions

38
docker/start.ps1 Normal file
View File

@@ -0,0 +1,38 @@
$ErrorActionPreference = "Stop"
$CONTAINER = "ewc2025-mysql"
$IMAGE = "mysql:8.4"
$ROOT_PASSWORD = "ewc2025root"
$DATABASE = "ewc2025"
$PORT = "13306"
$SQL_DIR = Resolve-Path "$PSScriptRoot\..\sql"
$exists = docker ps -a --format '{{.Names}}' | Where-Object { $_ -eq $CONTAINER }
if ($exists) {
Write-Host "Container '$CONTAINER' already exists -- starting it."
docker start $CONTAINER
} else {
Write-Host "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
}
Write-Host "Waiting for MySQL to be ready..."
while ($true) {
$result = docker exec $CONTAINER mysqladmin ping -uroot -p"$ROOT_PASSWORD" --silent 2>$null
if ($LASTEXITCODE -eq 0) { break }
Start-Sleep -Seconds 1
}
Write-Host "MySQL 8.4 is up."
Write-Host " Host: 127.0.0.1:${PORT}"
Write-Host " Database: $DATABASE"
Write-Host " User: root / $ROOT_PASSWORD"

36
docker/start.sh Executable file
View 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}"

13
docker/stop.ps1 Normal file
View File

@@ -0,0 +1,13 @@
$ErrorActionPreference = "Stop"
$CONTAINER = "ewc2025-mysql"
$exists = docker ps -a --format '{{.Names}}' | Where-Object { $_ -eq $CONTAINER }
if (-not $exists) {
Write-Host "Container '$CONTAINER' does not exist."
exit 0
}
docker stop $CONTAINER
Write-Host "Container '$CONTAINER' stopped. Data volume preserved."

12
docker/stop.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
CONTAINER="ewc2025-mysql"
if ! docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER}$"; then
echo "Container '${CONTAINER}' does not exist."
exit 0
fi
docker stop "${CONTAINER}"
echo "Container '${CONTAINER}' stopped. Data volume preserved."