调整REDIS_PORT

This commit is contained in:
chenqiang 2025-11-10 09:36:53 +08:00
parent f009cd8413
commit 9f770d2934
3 changed files with 32 additions and 13 deletions

View File

@ -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

View File

@ -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
View File

@ -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