fix(deploy): 加固 Redis 持久化与旧环境启动配置
This commit is contained in:
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
tmp_dir="$(mktemp -d)"
|
||||
trap 'rm -rf "$tmp_dir"' EXIT
|
||||
|
||||
cat > "$tmp_dir/docker" <<'SH'
|
||||
#!/usr/bin/env bash
|
||||
case "$1" in
|
||||
info) [ "${DOCKER_STUB_STATE:-}" != unavailable ] ;;
|
||||
container) [ "${DOCKER_STUB_STATE:-}" != absent ] ;;
|
||||
inspect) printf '%s\n' "${DOCKER_STUB_MOUNT:-}" ;;
|
||||
*) exit 2 ;;
|
||||
esac
|
||||
SH
|
||||
chmod +x "$tmp_dir/docker"
|
||||
export PATH="$tmp_dir:$PATH"
|
||||
|
||||
DOCKER_STUB_STATE=absent "$script_dir/check-redis-persistence.sh"
|
||||
DOCKER_STUB_MOUNT="bind|$(cd "$script_dir/../data" && pwd -P)/redis" "$script_dir/check-redis-persistence.sh"
|
||||
|
||||
for state in unavailable no_mount wrong_mount; do
|
||||
case "$state" in
|
||||
unavailable) export DOCKER_STUB_STATE=unavailable DOCKER_STUB_MOUNT='' ;;
|
||||
no_mount) export DOCKER_STUB_STATE=present DOCKER_STUB_MOUNT='' ;;
|
||||
wrong_mount) export DOCKER_STUB_STATE=present DOCKER_STUB_MOUNT='bind|/other/redis' ;;
|
||||
esac
|
||||
if "$script_dir/check-redis-persistence.sh" > /dev/null 2>&1; then
|
||||
echo "unsafe Redis state accepted: $state" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
echo 'Redis persistence guard tests passed'
|
||||
Reference in New Issue
Block a user