🐛 调整变量读取方式 🐛 修复Dockerfile问题

This commit is contained in:
li-chx 2025-11-14 14:55:59 +08:00
parent 45d4342454
commit 0f55926ce3
3 changed files with 23 additions and 2 deletions

View File

@ -42,7 +42,19 @@ public class BackupService(ILogger<BackupService> logger, IConfiguration config,
var url = _config.GetValue<string>("Database:Host") ?? "172.17.0.1";
var user = _config.GetValue<string>("Database:User") ?? "backupUser";
var password = _config.GetValue<string>("Database:Password") ?? "";
var databases = _config.GetSection("Database:Databases").Get<string[]>() ?? ["my_database"];
// 支持两种格式:
// 1. 数组格式appsettings.json: ["db1", "db2"]
// 2. 逗号分隔格式(环境变量): "db1,db2"
var databases = _config.GetSection("Database:Databases").Get<string[]>();
if (databases == null || databases.Length == 0)
{
// 尝试读取逗号分隔的字符串
var databasesStr = _config.GetValue<string>("Database:Databases");
databases = string.IsNullOrWhiteSpace(databasesStr)
? ["my_database"]
: databasesStr.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
}
var timestamp = DateTime.Now.ToString("yyyyMMddHHmmss");
var dumpDir = $"/data/dumps/dump-{timestamp}";

View File

@ -28,6 +28,5 @@ RUN dotnet publish "./SQLBackupToCOS.csproj" -c $BUILD_CONFIGURATION -o /app/pub
FROM base AS final
WORKDIR /app
ENV TZ="Asia/Shanghai"
RUN apt update && apt install -y mysql-client && mkdir /data && chmod 777 /data
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "SQLBackupToCOS.dll"]

View File

@ -4,3 +4,13 @@ services:
build:
context: .
dockerfile: SQLBackupToCOS/Dockerfile
environment:
Database__Host: SQLHOST
Database__User: SQLUSER
Database__Password: StrongPassword!
Database__Databases: DB1,DB2
COS__BucketName: BUCKETNAME
COS__Region: BUCKETREGION
COS__SecretId: SECRETID
COS__SecretKey: SECRETKEY
COS__FilePath: PATH