DockerFile für Azure AppService für Container / Fonts und Logging

Hallo Matthias,

unsere Empfehlung ist, wie auch in deinem Dockerfile zu sehen, Windows Server Core Docker-Images zu verwenden. Bei Nano Server Docker-Images fehlt nahezu die gesamte Windows API. Folgenden KB Artikel gibt es zu diesem Thema:

Bei unseren Tests hat das mit den Schriftarten folgendermaßen am besten funktioniert. Dem Visual Studio Projekt haben wir einen Ordner mit den benötigten Fonts hinzugefügt. Im Dockerfile werden diese in das Verzeichnis “c:/windows/fonts/” kopiert:

…
WORKDIR /src
#Copy the fonts
COPY ["MVC Web Reporting Sample/fonts/", "c:/windows/fonts/"]
…

Beim Start der Anwendung kannst du mit Hilfe der Windows API AddFontResource die Fonts für die aktuelle Session installieren:

[DllImport("gdi32.dll")]
static extern int  AddFontResource (string lpFilename);
AddFontResource(@"c:\Windows\Fonts\<Fontname>.ttf");

Beim Logging würden wir hier folgendermaßen vorgehen:

LlSetDebug(LL_DEBUG_CMBTLL | LL_DEBUG_CMBTLL_LOGTOFILE);
LlSetOptionString(-1, LL_OPTIONSTR_LOGFILEPATH, “debwin.log”);

Damit wird das “debwin.log“ im Startverzeichnis der Anwendung erstellt. Wenn es sich um eine Web-Anwendung handelt, könnte man hier noch Button für den Download des Logs zur Verfügung stellen. Ansonsten hat man wohl keine andere Wahl als die Datei aus dem Container zu kopieren:

docker cp ConatinerID:“debwin.log“ “Lokaler Pfad\debwin.log”

Bin jetzt nicht ganz sicher, aber möglichweise muss vorher der Container gestoppt werden.

1 Like