修复单服务部署被MQ配置阻断
This commit is contained in:
@@ -125,9 +125,9 @@ services:
|
||||
FILE_DB_PASSWORD: ${FILE_DB_PASSWORD}
|
||||
FILE_STORAGE_ROOT: /data/files
|
||||
JAVA_TOOL_OPTIONS: "-Xms1g -Xmx2g -XX:+ExitOnOutOfMemoryError -Dfile.encoding=UTF-8"
|
||||
ROCKETMQ_NAME_SERVER: ${ROCKETMQ_NAME_SERVER}
|
||||
# 必须显式设置:测试填 test-,生产填空字符串;使用 ? 而不是 :?,允许生产空值。
|
||||
MQ_TOPIC_PREFIX: ${MQ_TOPIC_PREFIX?MQ_TOPIC_PREFIX must be set; use test- for test and an empty value for production}
|
||||
# Compose 会插值整份文件,即使只部署 auth 等其他服务;File 的必填校验由 deploy-services.sh 按服务执行。
|
||||
ROCKETMQ_NAME_SERVER: ${ROCKETMQ_NAME_SERVER-}
|
||||
MQ_TOPIC_PREFIX: ${MQ_TOPIC_PREFIX-}
|
||||
FILE_EXPORT_CONSUMER_ENABLED: ${FILE_EXPORT_CONSUMER_ENABLED:-false}
|
||||
FILE_EXPORT_CONSUMER_CONCURRENCY: ${FILE_EXPORT_CONSUMER_CONCURRENCY:-4}
|
||||
FILE_EXPORT_PUBLISHER_ENABLED: ${FILE_EXPORT_PUBLISHER_ENABLED:-false}
|
||||
|
||||
@@ -19,6 +19,48 @@ fi
|
||||
|
||||
SERVICES=$(printf '%s' "$SERVICE_CSV" | tr ',' ' ')
|
||||
|
||||
env_file_has_key() {
|
||||
grep -q "^$1=" "$ENV_FILE"
|
||||
}
|
||||
|
||||
env_file_value() {
|
||||
sed -n "s/^$1=//p" "$ENV_FILE" | tail -n 1 | tr -d '\r'
|
||||
}
|
||||
|
||||
case " $SERVICES " in
|
||||
*" file "*)
|
||||
if ! env_file_has_key ROCKETMQ_NAME_SERVER || [ -z "$(env_file_value ROCKETMQ_NAME_SERVER)" ]; then
|
||||
echo "部署 file 服务时,环境文件必须包含非空 ROCKETMQ_NAME_SERVER" >&2
|
||||
exit 2
|
||||
fi
|
||||
if ! env_file_has_key MQ_TOPIC_PREFIX; then
|
||||
echo "部署 file 服务时,环境文件必须显式包含 MQ_TOPIC_PREFIX:测试填 test-,生产填空字符串" >&2
|
||||
exit 2
|
||||
fi
|
||||
MQ_PREFIX=$(env_file_value MQ_TOPIC_PREFIX)
|
||||
case "$DEPLOY_ENV" in
|
||||
test)
|
||||
if [ "$MQ_PREFIX" != "test-" ]; then
|
||||
echo "测试环境部署 file 服务时 MQ_TOPIC_PREFIX 必须为 test-" >&2
|
||||
exit 2
|
||||
fi
|
||||
;;
|
||||
production)
|
||||
if [ -n "$MQ_PREFIX" ]; then
|
||||
echo "生产环境部署 file 服务时 MQ_TOPIC_PREFIX 必须显式为空字符串" >&2
|
||||
exit 2
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if [ -z "$MQ_PREFIX" ] || [ "$MQ_PREFIX" = "test-" ]; then
|
||||
echo "预发布环境部署 file 服务时 MQ_TOPIC_PREFIX 必须为非空且不能使用 test-" >&2
|
||||
exit 2
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
export DEPLOY_ENV IMAGE_REPOSITORY IMAGE_TAG
|
||||
|
||||
PULL_POLICY_ARGS=""
|
||||
|
||||
Reference in New Issue
Block a user