Back to "Kuvanvahvistaja Dockerilla"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

Docker ImageSharp

Kuvanvahvistaja Dockerilla

Thursday, 01 August 2024

ImageSharp on loistava kirjasto kuvien kanssa työskentelyyn.NETissä. Se on nopea, helppokäyttöinen ja siinä on paljon ominaisuuksia. Tässä viestissä näytän sinulle, kuinka voit käyttää ImageSharpia Dockerin kanssa luodaksesi yksinkertaisen kuvankäsittelypalvelun.

Mikä on ImageSharp?

ImageSharp mahdollistaa saumattoman työskentelyn kuvien kanssa.NETissä. Se on cross-platform-kirjasto, joka tukee monenlaisia kuvaformaatteja ja tarjoaa yksinkertaisen API:n kuvankäsittelyyn. Se on nopea, tehokas ja helppokäyttöinen.

Setissäni on kuitenkin ongelma dockerin ja ImageSharpin avulla. Kun yritän ladata kuvan tiedostosta, saan seuraavan virheen: Pääsy kielletty polulle / wwroot/cache/ ym.... Tämä johtuu Docker ASP.NET -laitteista, jotka eivät salli kirjoitusoikeutta välimuistihakemistoon ImageSharpin avulla tallentaa tilapäisiä tiedostoja.

Ratkaisu

Ratkaisuna on asentaa laatikkoon äänenvoimakkuus, joka osoittaa isäntäkoneen hakemistoon. Näin ImageSharp-kirjasto voi kirjoittaa välimuistihakemistoon ilman ongelmia.

Näin se tehdään:

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

Tässä näet, että kartoitan /app/wwwroot/cache-tiedoston paikalliseen hakemistoon isäntäkoneessani. Näin ImageSharp voi kirjoittaa välimuistihakemistoon ilman ongelmia.

Ubuntu-koneellani loin hakemiston /mnt/imagecache ja suoritin sitten folowing-komennon, jotta se olisi kirjoitettavissa (kuka tahansa, tiedän, että tämä ei ole turvallista, mutta en ole mikään Linux-guru :)

chmod  777 -p /mnt/imagecache

Ohjelmassa.cs:ssä minulla on tämä rivi:

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

Koska cacheroot-oletukset ovat wwwrootille, tämä kirjoitetaan nyt isäntäkoneen /mnt/imagecache-hakemistoon.

logo

©2024 Scott Galloway