From 0ea582f4648a73dd3795237f992ebfad41254b82 Mon Sep 17 00:00:00 2001 From: femsci Date: Sat, 18 Nov 2023 12:41:04 +0100 Subject: [PATCH] Docker & env --- Dockerfile | 28 +++++++++++++++++++++++ src/Nyanlabs.Umogen.Core/UmoEngine.cs | 2 +- src/Nyanlabs.Umogen.Server/DataContext.cs | 3 ++- 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4bf6b8a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build + +WORKDIR /src + +COPY *.sln . +COPY src/Nyanlabs.Umogen.Core/*.csproj src/Nyanlabs.Umogen.Core/ +COPY src/Nyanlabs.Umogen.Server/*.csproj src/Nyanlabs.Umogen.Server/ + +COPY test/Nyanlabs.Umogen.WebTests/*.csproj test/Nyanlabs.Umogen.WebTests/ +COPY test/Nyanlabs.Umogen.CoreTests/*.csproj test/Nyanlabs.Umogen.CoreTests/ + +RUN dotnet restore + +COPY . . + +RUN dotnet publish -c Release -o /build + +FROM mcr.microsoft.com/dotnet/aspnet:8.0 + +RUN apt update -y +RUN apt install -y libreoffice-writer-nogui + +COPY --from=build /build /app + +WORKDIR /app + +EXPOSE 8080 +ENTRYPOINT [ "dotnet", "Nyanlabs.Umogen.Server.dll" ] diff --git a/src/Nyanlabs.Umogen.Core/UmoEngine.cs b/src/Nyanlabs.Umogen.Core/UmoEngine.cs index 67d21e5..0bc2f24 100644 --- a/src/Nyanlabs.Umogen.Core/UmoEngine.cs +++ b/src/Nyanlabs.Umogen.Core/UmoEngine.cs @@ -8,7 +8,7 @@ public class UmoEngine : IDisposable { if (isFilePath) { - apiKey ??= Umogen.DEFAULT_API_KEY_FILE; + apiKey ??= Environment.GetEnvironmentVariable("UMO_KEY_FILE") ?? Umogen.DEFAULT_API_KEY_FILE; if (!File.Exists(apiKey)) { throw new ArgumentException($"No such file: {apiKey}"); diff --git a/src/Nyanlabs.Umogen.Server/DataContext.cs b/src/Nyanlabs.Umogen.Server/DataContext.cs index c0f6c6c..8c54a0b 100644 --- a/src/Nyanlabs.Umogen.Server/DataContext.cs +++ b/src/Nyanlabs.Umogen.Server/DataContext.cs @@ -11,7 +11,8 @@ public class DataContext : DbContext protected override void OnConfiguring(DbContextOptionsBuilder o) { - o.UseSqlite("Data Source=data.db;"); + + o.UseSqlite($"Data Source={Environment.GetEnvironmentVariable("UMO_DATA") ?? "data.db"};"); } protected override void OnModelCreating(ModelBuilder m)