From 0f55926ce3e2797f0b554e968e6885cfddbed5dc Mon Sep 17 00:00:00 2001 From: li-chx Date: Fri, 14 Nov 2025 14:55:59 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E8=B0=83=E6=95=B4=E5=8F=98=E9=87=8F?= =?UTF-8?q?=E8=AF=BB=E5=8F=96=E6=96=B9=E5=BC=8F=20:bug:=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8DDockerfile=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SQLBackupToCOS/BackupService.cs | 14 +++++++++++++- SQLBackupToCOS/Dockerfile | 1 - docker-compose.yml | 10 ++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/SQLBackupToCOS/BackupService.cs b/SQLBackupToCOS/BackupService.cs index 968753f..550a07b 100644 --- a/SQLBackupToCOS/BackupService.cs +++ b/SQLBackupToCOS/BackupService.cs @@ -42,7 +42,19 @@ public class BackupService(ILogger logger, IConfiguration config, var url = _config.GetValue("Database:Host") ?? "172.17.0.1"; var user = _config.GetValue("Database:User") ?? "backupUser"; var password = _config.GetValue("Database:Password") ?? ""; - var databases = _config.GetSection("Database:Databases").Get() ?? ["my_database"]; + + // 支持两种格式: + // 1. 数组格式(appsettings.json): ["db1", "db2"] + // 2. 逗号分隔格式(环境变量): "db1,db2" + var databases = _config.GetSection("Database:Databases").Get(); + if (databases == null || databases.Length == 0) + { + // 尝试读取逗号分隔的字符串 + var databasesStr = _config.GetValue("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}"; diff --git a/SQLBackupToCOS/Dockerfile b/SQLBackupToCOS/Dockerfile index 7f7c50e..a6b9c81 100644 --- a/SQLBackupToCOS/Dockerfile +++ b/SQLBackupToCOS/Dockerfile @@ -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"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 962d00f..3dc6abd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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