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