调整REDIS_PORT
This commit is contained in:
parent
f009cd8413
commit
9f770d2934
@ -5,7 +5,9 @@ services:
|
||||
restart: always
|
||||
volumes:
|
||||
- ./data:/data
|
||||
command: redis-server --port ${REDIS_PORT:-6379} --requirepass ${REDIS_PASSWORD} --bind ${REDIS_BIND:-0.0.0.0} --tcp-backlog ${REDIS_TCP_BACKLOG:-511} --protected-mode ${REDIS_PROTECTED_MODE:-yes}
|
||||
ports:
|
||||
- ${REDIS_PORT:-6379}:6379
|
||||
command: redis-server --requirepass ${REDIS_PASSWORD} --bind ${REDIS_BIND:-0.0.0.0} --tcp-backlog ${REDIS_TCP_BACKLOG:-511} --protected-mode ${REDIS_PROTECTED_MODE:-yes}
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"]
|
||||
interval: 10s
|
||||
|
||||
15
redis-cli
15
redis-cli
@ -12,10 +12,19 @@ load_env_variables() {
|
||||
# 使用direnv加载环境变量
|
||||
if command -v direnv &> /dev/null; then
|
||||
eval "$(direnv export bash)"
|
||||
# 检查REDIS_PASSWORD是否已设置
|
||||
|
||||
# 检查REDIS_PASSWORD是否已设置,如果未设置则执行direnv allow
|
||||
if [ -z "$REDIS_PASSWORD" ]; then
|
||||
echo "错误: 密码验证失败,无法继续操作"
|
||||
return 1
|
||||
echo "⚠️ 检测到需要执行direnv allow来授权环境变量文件"
|
||||
direnv allow
|
||||
echo "🔄 重新加载环境变量..."
|
||||
eval "$(direnv export bash)"
|
||||
|
||||
# 再次检查REDIS_PASSWORD是否设置
|
||||
if [ -z "$REDIS_PASSWORD" ]; then
|
||||
echo "错误: 密码验证失败,无法继续操作"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "错误: 未安装direnv,请先安装direnv"
|
||||
|
||||
26
service
26
service
@ -26,7 +26,15 @@ load_environment() {
|
||||
echo "📋 正在通过direnv加载环境变量..."
|
||||
# 捕获direnv输出到临时文件以便检查错误
|
||||
eval "$(direnv export zsh)" 2>$temp_env
|
||||
|
||||
|
||||
# 检查REDIS_PASSWORD是否成功设置,如果未设置且.envrc存在,则执行direnv allow
|
||||
if [ -z "$REDIS_PASSWORD" ] && [ -f ".envrc" ]; then
|
||||
echo "⚠️ 检测到需要执行direnv allow来授权环境变量文件"
|
||||
direnv allow
|
||||
echo "🔄 重新加载环境变量..."
|
||||
eval "$(direnv export zsh)" 2>$temp_env
|
||||
fi
|
||||
|
||||
# 检查是否有错误输出
|
||||
if grep -q "error" "$temp_env" || grep -q "Error" "$temp_env"; then
|
||||
echo "❌ 错误: 环境变量加载失败,请检查主密钥是否正确"
|
||||
@ -34,29 +42,29 @@ load_environment() {
|
||||
rm "$temp_env"
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
||||
# 检查REDIS_PASSWORD是否成功设置
|
||||
if [ -z "$REDIS_PASSWORD" ]; then
|
||||
echo "❌ 错误: Redis密码解密失败,请检查主密钥是否正确"
|
||||
rm "$temp_env"
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
||||
success=0
|
||||
fi
|
||||
|
||||
# 如果direnv加载失败或未安装,尝试直接加载.envrc
|
||||
if [ $success -ne 0 ]; then
|
||||
echo "📋 正在直接加载环境变量..."
|
||||
|
||||
|
||||
# 逐个处理环境变量,特别是需要特别处理REDIS_PASSWORD解密
|
||||
local other_vars=$(grep -E '^export REDIS_' .envrc | grep -v 'REDIS_PASSWORD' | sed 's/^export //')
|
||||
|
||||
|
||||
# 导出除REDIS_PASSWORD外的其他变量
|
||||
if [ ! -z "$other_vars" ]; then
|
||||
export $other_vars
|
||||
fi
|
||||
|
||||
|
||||
# 单独处理REDIS_PASSWORD的解密,捕获错误
|
||||
local openssl_cmd=$(grep -E '^export REDIS_PASSWORD=' .envrc | sed 's/^export REDIS_PASSWORD=//')
|
||||
if [ ! -z "$openssl_cmd" ]; then
|
||||
@ -64,7 +72,7 @@ load_environment() {
|
||||
# 执行解密命令并捕获错误
|
||||
local decrypted_pwd=$(eval "$openssl_cmd" 2>$temp_env)
|
||||
local decrypted_success=$?
|
||||
|
||||
|
||||
# 检查解密是否成功
|
||||
if [ $decrypted_success -ne 0 ] || grep -q "error" "$temp_env"; then
|
||||
echo "❌ 错误: 主密钥错误,解密失败!"
|
||||
@ -72,13 +80,13 @@ load_environment() {
|
||||
rm "$temp_env"
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
||||
# 设置解密后的密码
|
||||
export REDIS_PASSWORD="$decrypted_pwd"
|
||||
echo "✅ 密码解密成功"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# 清理临时文件
|
||||
rm -f "$temp_env"
|
||||
return 0
|
||||
|
||||
Loading…
Reference in New Issue
Block a user