ImageSharp med Docker (Svenska (Swedish))

ImageSharp med Docker

Comments

NOTE: Apart from English (and even then it's questionable, I'm Scottish). These are machine translated in languages I don't read. If they're terrible please contact me.
You can see how this translation was done in this article.

Thursday, 01 August 2024

//

Less than a minute

ImageSharp är ett bra bibliotek för att arbeta med bilder i.NET. Den är snabb, lätt att använda och har många funktioner. I det här inlägget ska jag visa dig hur du använder ImageSharp med Docker för att skapa en enkel bildbehandlingstjänst.

Vad är ImageSharp?

ImageSharp gör det möjligt för mig att sömlöst arbeta med bilder i.NET. Det är ett plattformsoberoende bibliotek som stöder ett brett utbud av bildformat och ger ett enkelt API för bildbehandling. Den är snabb, effektiv och lätt att använda.

Men det finns ett problem i min installation med docka och ImageSharp. När jag försöker ladda en bild från en fil får jag följande fel: Åtkomst nekad till stigen /wwroot/cache/ etc... Detta orsakas av Docker ASP.NET-installationer som inte tillåter skrivåtkomst till cachekatalogen ImageSharp använder för att lagra tillfälliga filer.

Lösning

Lösningen är att montera en volym i dockerbehållaren som pekar på en katalog på värdmaskinen. På så sätt kan ImageSharp-biblioteket skriva till cachekatalogen utan några problem.

Så här gör vi:

mostlylucid:
image: scottgal/mostlylucid:latest
volumes:
- /mnt/imagecache:/app/wwwroot/cache

Här ser du att jag kartlägger /app/wwwroot/cache-filen till en lokal katalog på min värdmaskin. På så sätt kan ImageSharp skriva till cachekatalogen utan några problem.

På min Ubuntu-maskin skapade jag en katalog /mnt/imagecache och körde sedan kommandot folowing för att göra den skrivbar (av vem som helst, jag vet att detta inte är säkert men jag är ingen Linux guru :)

chmod  777 -p /mnt/imagecache

I mitt program.cs Jag har denna rad:

builder.Services.AddImageSharp().Configure<PhysicalFileSystemCacheOptions>(options => options.CacheFolder = "cache");

Som cacheroot standard till wwwroot kommer detta nu att skriva till katalogen /mnt/imakecache på värddatorn.

logo

©2024 Scott Galloway