36 lines
1.1 KiB
Bash
Executable File
36 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
container_name="${REDIS_FIXTURE_CONTAINER:-redis-gui-smoke}"
|
|
host_port="${REDIS_FIXTURE_PORT:-6380}"
|
|
image="${REDIS_FIXTURE_IMAGE:-redis:7.4-alpine}"
|
|
|
|
if docker container inspect "$container_name" >/dev/null 2>&1; then
|
|
running="$(docker inspect -f '{{.State.Running}}' "$container_name")"
|
|
if [ "$running" = "true" ]; then
|
|
echo "Redis fixture already running: $container_name on 127.0.0.1:$host_port"
|
|
else
|
|
docker start "$container_name" >/dev/null
|
|
echo "Redis fixture started: $container_name on 127.0.0.1:$host_port"
|
|
fi
|
|
else
|
|
docker run -d \
|
|
--name "$container_name" \
|
|
-p "${host_port}:6379" \
|
|
"$image" \
|
|
redis-server --save '' --appendonly no >/dev/null
|
|
echo "Redis fixture created: $container_name on 127.0.0.1:$host_port"
|
|
fi
|
|
|
|
attempt=0
|
|
until docker exec "$container_name" redis-cli ping 2>/dev/null | grep -q '^PONG$'; do
|
|
attempt=$((attempt + 1))
|
|
if [ "$attempt" -ge 20 ]; then
|
|
echo "Redis fixture did not become ready within 20 seconds." >&2
|
|
exit 1
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
echo "Redis fixture is ready."
|