ImageSharp με Docker ( ελληνικά (Greek_)

ImageSharp με 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 είναι μια μεγάλη βιβλιοθήκη για τη συνεργασία με τις εικόνες στο.NET. Είναι γρήγορο, εύκολο στη χρήση, και έχει πολλά χαρακτηριστικά. Σε αυτή τη δημοσίευση, θα σας δείξω πώς να χρησιμοποιήσετε το ImageSharp με το Docker για να δημιουργήσετε μια απλή υπηρεσία επεξεργασίας εικόνων.

Τι είναι το ImageSharp;

Το ImageSharp μου επιτρέπει να δουλεύω απρόσκοπτα με εικόνες στο.NET. Είναι μια βιβλιοθήκη cross-platform που υποστηρίζει ένα ευρύ φάσμα μορφών εικόνας και παρέχει ένα απλό API για την επεξεργασία εικόνων. Είναι γρήγορο, αποτελεσματικό και εύκολο στη χρήση.

Ωστόσο, υπάρχει ένα θέμα στην εγκατάσταση μου χρησιμοποιώντας docker και ImageSharp. Όταν προσπαθώ να φορτώσω μια εικόνα από ένα αρχείο, παίρνω το ακόλουθο σφάλμα: "Απαγορεύεται η είσοδος στο μονοπάτι /wwroot/cache/ κλπ...." Αυτό προκαλείται από Docker ASP.NET εγκαταστάσεις που δεν επιτρέπουν την πρόσβαση εγγραφής στον κατάλογο cache ImageSharp χρησιμοποιεί για την αποθήκευση προσωρινών αρχείων.

∆ιάλυμα

Η λύση είναι να τοποθετήσετε έναν όγκο στο δοχείο Docker που δείχνει σε έναν κατάλογο στο μηχάνημα υποδοχής. Με αυτόν τον τρόπο, η βιβλιοθήκη ImageSharp μπορεί να γράψει στον κατάλογο cache χωρίς προβλήματα.

Εδώ είναι πώς να το κάνουμε:

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

Εδώ βλέπετε ότι χαρτογράφω το αρχείο /app/wwwroot/cache σε έναν τοπικό κατάλογο στο μηχάνημα υποδοχής μου. Με αυτόν τον τρόπο, το ImageSharp μπορεί να γράψει στον κατάλογο cache χωρίς προβλήματα.

Στη μηχανή Ubuntu μου δημιούργησα έναν κατάλογο / mnt/imagecache και στη συνέχεια έτρεξα την αφηρημένη εντολή για να το γράψω (από οποιονδήποτε, ξέρω ότι αυτό δεν είναι ασφαλές αλλά δεν είμαι γκουρού Linux:)

chmod  777 -p /mnt/imagecache

Στο πρόγραμμά μου. cs Έχω αυτή τη γραμμή:

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

Καθώς η cacheroot προεπιλέγει να wwwroot αυτό θα γράψει τώρα στον κατάλογο /mnt/imagecache στο μηχάνημα υποδοχής.

logo

©2024 Scott Galloway