-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Docker el GR
Το ASF είναι διαθέσιμο ως docker container . Τα πακέτα docker μας είναι επί του παρόντος διαθέσιμα σε ghcr.io καθώς και Docker Hub.
Είναι σημαντικό να σημειωθεί ότι η εκτέλεση του ASF στο Docker container θεωρείται προηγμένη ρύθμιση, το οποίο είναι δεν χρειάζεται για τη συντριπτική πλειοψηφία των χρηστών, και συνήθως δίνει δεν πλεονεκτήματα σε σχέση με τη ρύθμιση χωρίς περιέκτες. Εάν θεωρείτε το Docker ως λύση για την εκτέλεση του ASF ως υπηρεσία, για παράδειγμα κάνοντας το να ξεκινήσει αυτόματα με το λειτουργικό σας σύστημα, τότε θα πρέπει να εξετάσει την ανάγνωση διαχείριση ενότητα και να δημιουργήσει μια σωστή υπηρεσία systemd
η οποία θα είναι σχεδόν πάντα μια καλύτερη ιδέα από την εκτέλεση του ASF σε ένα δοχείο Docker.
Running ASF in Docker container usually involves several new problems and issues that you'll have to face and resolve yourself. Αυτός είναι ο λόγος για τον οποίο strongly σας προτείνουμε να το αποφύγετε εκτός αν έχετε ήδη γνώση Docker και δεν χρειάζεστε βοήθεια για την κατανόηση των εσωτερικών της οργάνων, about which we will elaborate here on ASF wiki. Αυτή η ενότητα είναι ως επί το πλείστον για έγκυρες περιπτώσεις χρήσης πολύ σύνθετων ρυθμίσεων, για παράδειγμα, όσον αφορά την προηγμένη δικτύωση ή την ασφάλεια πέρα από το πρότυπο sandboxing με το οποίο έρχεται το ASF στην υπηρεσία systemd
(η οποία ήδη εξασφαλίζει ανώτερη απομόνωση της διαδικασίας μέσω πολύ προηγμένων μηχανικών ασφαλείας). Για αυτά τα χούφτα ποσά, εδώ εξηγούμε καλύτερες έννοιες ASF σε σχέση με τη συμβατότητα του Docker, and only that, you assumed to have adequate Docker knowledge yourself if you decide to use it together with ASF.
Το ASF είναι διαθέσιμο μέσω 4 κύριων τύπων ετικετών :
This tag always points to the ASF built from latest commit in main
branch, which works the same as grabbing latest artifact directly from our CI pipeline. Συνήθως θα πρέπει να αποφύγετε αυτή την ετικέτα, καθώς είναι το υψηλότερο επίπεδο σφαλμάτων λογισμικού αφιερωμένο στους προγραμματιστές και τους προχωρημένους χρήστες για λόγους ανάπτυξης. The image is being updated with each commit in the main
GitHub branch, therefore you can expect very often updates (and stuff being broken). Είναι εδώ για μας να σηματοδοτήσουμε την τρέχουσα κατάσταση του έργου ASF, η οποία δεν είναι απαραίτητα εγγυημένη για να είναι σταθερή ή δοκιμασμένη, ακριβώς όπως επισημάνθηκε στον κύκλο απελευθέρωσής μας. Αυτή η ετικέτα δεν πρέπει να χρησιμοποιείται σε κανένα περιβάλλον παραγωγής.
Πολύ παρόμοια με τα παραπάνω, αυτή η ετικέτα δείχνει πάντα την τελευταία έκδοση που κυκλοφόρησε ASF, συμπεριλαμβανομένων των προ-απελευθερώσεων. Σε σύγκριση με την ετικέτα main
, αυτή η εικόνα ενημερώνεται κάθε φορά που ωθείται μια νέα ετικέτα GitHub. Αφιερωμένο σε προχωρημένους/προχωρημένους χρήστες που αγαπούν να ζουν στην άκρη του τι μπορεί να θεωρηθεί σταθερό και φρέσκο ταυτόχρονα. Αυτό θα συνιστούσαμε αν δεν θέλετε να χρησιμοποιήσετε την τελευταία ετικέτα ``. Στην πράξη, λειτουργεί το ίδιο με την πινακίδα κύλισης που δείχνει την πιο πρόσφατη έκδοση A.B.C.D
κατά τη στιγμή της έλξης. Παρακαλώ σημειώστε ότι η χρήση αυτής της ετικέτας ισούται με τη χρήση προ-απελευθερώσεων .
Αυτή η ετικέτα σε σύγκριση με άλλους, είναι η μόνη που περιλαμβάνει τη λειτουργία αυτόματης ενημέρωσης ASF και σημεία στην τελευταία έκδοση σταθερής ASF. Ο στόχος αυτής της ετικέτας είναι να παρέχει ένα λογικό προεπιλεγμένο δοχείο Docker που είναι σε θέση να τρέχει αυτο-ενημέρωση, OS-συγκεκριμένη κατασκευή του ASF. Εξαιτίας αυτού, η εικόνα δεν πρέπει να ενημερώνεται όσο το δυνατόν συχνότερα, όπως περιλαμβάνεται έκδοση του ASF θα είναι πάντα σε θέση να ενημερώνεται, εάν είναι απαραίτητο. Of course, UpdatePeriod
can be safely turned off (set to 0
), but in this case you should probably use frozen A.B.C.D
release instead. Ομοίως, μπορείτε να τροποποιήσετε το προεπιλεγμένο UpdateChannel
προκειμένου να κάνετε την αυτόματη ενημέρωση να απελευθερωθεί η ετικέτα
.
Due to the fact that the latest
image comes with capability of auto-updates, it includes bare OS with OS-specific linux
ASF version, contrary to all other tags that include OS with .NET runtime and generic
ASF version. Αυτό συμβαίνει επειδή η νεότερη (ενημερωμένη) έκδοση ASF μπορεί επίσης να απαιτεί νεότερο χρόνο εκτέλεσης από αυτή με την οποία θα μπορούσε ενδεχομένως να κατασκευαστεί η εικόνα, whichοι οποίες would otherwise require image to be re-buildingανακατασκευάστηκε from scratch, ακυρώνοντας the planned use-caseπερίπτωση .
Σε σύγκριση με τις παραπάνω ετικέτες, αυτή η ετικέτα είναι πλήρως παγωμένη, πράγμα που σημαίνει ότι η εικόνα δεν θα ενημερωθεί μόλις δημοσιευθεί. Αυτό λειτουργεί παρόμοια με τις κυκλοφορίες του GitHub που δεν αγγίζονται ποτέ μετά την αρχική έκδοση, η οποία σας εγγυάται σταθερό και παγωμένο περιβάλλον. Συνήθως θα πρέπει να χρησιμοποιείτε αυτήν την ετικέτα όταν θέλετε να χρησιμοποιήσετε κάποια συγκεκριμένη έκδοση ASF και δεν θέλετε να χρησιμοποιήσετε οποιοδήποτε είδος αυτόματων ενημερώσεων (π. χ. . εκείνοι που προσφέρονται στην τελευταία ετικέτα
.
Αυτό εξαρτάται από αυτό που ψάχνετε. Για την πλειοψηφία των χρηστών, τελευταία ετικέτα
θα πρέπει να είναι η καλύτερη καθώς προσφέρει ακριβώς τι κάνει η επιφάνεια εργασίας ASF, ακριβώς σε ειδικό δοχείο Docker ως υπηρεσία. Οι άνθρωποι που ξαναχτίζουν τις εικόνες τους αρκετά συχνά και θα προτιμούσαν τον πλήρη έλεγχο με την έκδοση ASF που συνδέεται με δεδομένη κυκλοφορία είναι ευπρόσδεκτοι να χρησιμοποιήσουν την ετικέτα που κυκλοφόρησε
. Αν αντί αυτού θέλετε να χρησιμοποιήσετε κάποια συγκεκριμένη παγωμένη έκδοση ASF που δεν θα αλλάξει ποτέ χωρίς σαφή πρόθεση σας, A. .C.D
κυκλοφορίες είναι διαθέσιμες για εσάς ως σταθερά ορόσημα ASF μπορείτε πάντα να πέσει πίσω.
Αποθαρρύνουμε γενικά προσπαθώντας κύρια
κτίρια, καθώς αυτοί είναι εδώ για μας να σηματοδοτήσουμε την τρέχουσα κατάσταση του έργου ASF. Τίποτα δεν εγγυάται ότι το κράτος αυτό θα λειτουργήσει σωστά, αλλά φυσικά είστε περισσότερο από ευπρόσδεκτοι να τους δώσετε μια δοκιμή, αν ενδιαφέρεστε για την ανάπτυξη του ASF.
Η εικόνα του ASF είναι χτισμένη στην πλατφόρμα linux
για αρχιτεκτονικές 3 - x64
, σκέλος
και arm64
. Μπορείτε να διαβάσετε περισσότερα για αυτούς στην ενότητα συμβατότητας.
Οι ετικέτες μας χρησιμοποιούν διακήρυξη πολλαπλών πλατφορμών, που σημαίνει ότι το Docker που είναι εγκατεστημένο στο μηχάνημά σας θα επιλέξει αυτόματα την κατάλληλη εικόνα για την πλατφόρμα σας όταν τραβάτε την εικόνα. Αν κατά πάσα πιθανότητα θα θέλατε να τραβήξετε μια συγκεκριμένη εικόνα πλατφόρμας που δεν ταιριάζει με αυτή που εκτελείτε, μπορείτε να το κάνετε αυτό μέσω εναλλαγής --platform
σε κατάλληλες εντολές docker, όπως το docker τρέχει
. Δείτε την τεκμηρίωση docker στο δηλωτικό εικόνας για περισσότερες πληροφορίες.
Για πλήρη αναφορά θα πρέπει να χρησιμοποιήσετε την επίσημη τεκμηρίωση docker , θα καλύψουμε μόνο τη βασική χρήση σε αυτόν τον οδηγό, είστε περισσότερο από ευπρόσδεκτοι να σκάψετε βαθύτερα.
Πρώτον, θα πρέπει να επαληθεύσουμε αν ο docker μας λειτουργεί σωστά, αυτό θα χρησιμεύσει ως ASF μας "γέλο κόσμο":
docker τρέχει -it --name asf --pull always --rm justarchi/archisteamfarm
Το docker τρέχει
δημιουργεί ένα νέο ASF docker container για εσάς και το τρέχει στο προσκήνιο (-it
). --pull always
ensures that up-to-date image will be pulled first και το --rm
εξασφαλίζει ότι το δοχείό μας θα καθαριστεί μόλις σταματήσει, αφού απλά δοκιμάζουμε αν όλα λειτουργούν καλά για τώρα.
Αν όλα τελείωσαν με επιτυχία, μετά το τράβηγμα όλα τα στρώματα και το αρχικό δοχείο, θα πρέπει να παρατηρήσετε ότι η ASF ξεκίνησε σωστά και μας ενημέρωσε ότι δεν υπάρχουν καθορισμένα bots, που είναι καλό - επαληθεύσαμε ότι το ASF στο docker λειτουργεί σωστά. Hit CTRL+C
για τον τερματισμό της διαδικασίας ASF και επομένως και της δεξαμενής.
Αν ρίξετε μια πιο προσεκτική ματιά στην εντολή, τότε θα παρατηρήσετε ότι δεν δηλώσαμε καμία ετικέτα, που αυτόματα προκαθόρισε το πιο πρόσφατο
. Αν θέλετε να χρησιμοποιήσετε άλλη ετικέτα από το πιο πρόσφατο
, για παράδειγμα το κυκλοφόρησε
, τότε θα πρέπει να το δηλώσετε ρητά:
docker run -it --name asf --pull always --rm justarchi/archisteamfarm:released
Αν χρησιμοποιείτε το ASF σε docker container τότε προφανώς θα πρέπει να ρυθμίσετε το ίδιο το πρόγραμμα. Μπορείτε να το κάνετε με διάφορους τρόπους, αλλά το συνιστώμενο θα ήταν να δημιουργηθεί ο κατάλογος ASF config
στην τοπική μηχανή, στη συνέχεια τοποθετήστε τον ως κοινόχρηστο όγκο σε εμπορευματοκιβώτιο αποβάθρας ASF.
Για παράδειγμα, θα υποθέσουμε ότι ο φάκελος ρυθμίσεων ASF είναι στον κατάλογο /home/archi/ASF/config
. Αυτός ο κατάλογος περιέχει πυρήνα ASF.json
καθώς και bots που θέλουμε να τρέξουμε. Τώρα το μόνο που χρειάζεται να κάνουμε είναι απλά να επισυνάψουμε αυτόν τον κατάλογο ως κοινόχρηστο όγκο στο docker δοχείο μας, όπου το ASF αναμένει τον κατάλογο ρυθμίσεων (/app/config
).
docker run -it -v /home/archi/ASF/config:/app/config --name asf --pull always justarchi/archisteamfarm
Και αυτό είναι, τώρα το ASF docker container σας θα χρησιμοποιήσει κοινόχρηστο κατάλογο με την τοπική μηχανή σας σε λειτουργία ανάγνωσης-εγγραφής, που είναι όλα όσα χρειάζεστε για τη διαμόρφωση ASF. Με παρόμοιο τρόπο, μπορείτε να τοποθετήσετε άλλους τόμους που θα θέλατε να μοιραστείτε με το ASF, όπως /app/logs
ή /app/plugins
.
Φυσικά, αυτός είναι μόνο ένας συγκεκριμένος τρόπος για να επιτύχουμε αυτό που θέλουμε, τίποτα δεν σας εμποδίζει π.χ. δημιουργώντας το δικό σας Dockerfile
που θα αντιγράψει τα αρχεία ρυθμίσεων σας στον κατάλογο /app/config
μέσα στο docker container. Σε αυτόν τον οδηγό καλύπτουμε μόνο τη βασική χρήση.
ASF container by default is initialized with root
user, που του επιτρέπει να χειριστεί τα εσωτερικά δικαιώματα και στη συνέχεια να μεταβείτε στο χρήστη asf
(UID 1000
) για το υπόλοιπο μέρος της κύριας διεργασίας. Αν και αυτό θα πρέπει να ικανοποιεί τη συντριπτική πλειοψηφία των χρηστών, επηρεάζει τον κοινό τόμο καθώς τα νεοδημιουργούμενα αρχεία θα ανήκουν κανονικά στον χρήστη asf
, που μπορεί να μην είναι επιθυμητή κατάσταση αν θέλετε κάποιον άλλο χρήστη για τον κοινόχρηστο όγκο σας.
Υπάρχουν δύο τρόποι με τους οποίους μπορείτε να αλλάξετε το ASF του χρήστη. Η πρώτη, συνιστάται, είναι να δηλώσετε την περιβάλλουσα μεταβλητή ASF_USER
με στόχο UID στο οποίο θέλετε να εκτελέσετε. Δεύτερον, εναλλακτικό, είναι να περάσει --user
flag, το οποίο υποστηρίζεται άμεσα από το docker.
You can check your uid
for example with id -u
command, then declare it as specified above. Για παράδειγμα, εάν ο χρήστης προορισμού σας έχει uid
1001:
docker run -it -e ASF_USER=1001 -v /home/archi/ASF/config:/app/config --name asf --pull always justarchi/archisteamfarm
# Εναλλακτικά, αν καταλάβετε τους περιορισμούς κάτω από το σημείο
docker τρέχει -it -u 1001 -v /home/archi/ASF/config:/app/config --name asf --pull always justarchi/archisteamfarm
Η διαφορά μεταξύ ASF_USER
και --user
είναι λεπτή, αλλά σημαντική. ASF_USER
είναι προσαρμοσμένος μηχανισμός που υποστηρίζεται από το ASF, σε αυτό το σενάριο docker container ξεκινά ακόμα ως root
, και στη συνέχεια το σενάριο εκκίνησης ASF ξεκινά το κύριο δυαδικό κάτω από ASF_USER
. Όταν χρησιμοποιείτε σημαία --user
, ξεκινάτε όλη τη διαδικασία, συμπεριλαμβανομένου του σεναρίου εκκίνησης ASF ως δοσμένου χρήστη. Η πρώτη επιλογή επιτρέπει στο σενάριο εκκίνησης ASF να χειρίζεται αυτόματα δικαιώματα και άλλα πράγματα για εσάς, επιλύοντας κάποια κοινά ζητήματα που μπορεί να προκαλέσετε, για παράδειγμα εξασφαλίζει ότι οι κατάλογοι /app
και /asf
ανήκουν στην πραγματικότητα σε ASF_USER
. Σε δεύτερο σενάριο, αφού δεν λειτουργούμε ως root
, δεν μπορούμε να το κάνουμε αυτό, και αναμένεται να χειριστείτε όλοι σας εκ των προτέρων.
Αν έχετε αποφασίσει να χρησιμοποιήσετε σημαία --user
, θα πρέπει να αλλάξετε την ιδιοκτησία όλων των αρχείων ASF από προεπιλογή asf
στον νέο προσαρμοσμένο χρήστη σας. Μπορείτε να το κάνετε εκτελώντας την εντολή παρακάτω:
# Εκτέλεση μόνο αν δεν χρησιμοποιείτε ASF_USER
docker exec -u root asf chown -hR 1001 /app /asf
Αυτό πρέπει να γίνει μόνο μία φορά αφού έχετε δημιουργήσει το δοχείό σας με docker τρέχει
, και μόνο αν αποφασίσατε να χρησιμοποιήσετε προσαρμοσμένο χρήστη μέσω της σημαίας docker --user
. Επίσης μην ξεχάσετε να αλλάξετε το όρισμα 1001
στην παραπάνω εντολή στο UID
που πραγματικά θέλετε να εκτελέσετε το ASF κάτω.
Αν χρησιμοποιείτε SELinux σε επιβεβλημένη κατάσταση στο λειτουργικό σύστημα σας, η οποία είναι η προεπιλογή για παράδειγμα στις διανομές RHEL, τότε θα πρέπει να τοποθετήσετε την επιλογή τόμος που προσαρτά :Z
, η οποία θα ορίσει το σωστό πλαίσιο SELinux γι 'αυτό.
docker run -it -v /home/archi/ASF/config:/app/config:Z --name asf --pull always justarchi/archisteamfarm
Αυτό θα επιτρέψει στο ASF να δημιουργήσει αρχεία targetting την ένταση ενώ βρίσκεται μέσα στο docker container.
Το ASF περιλαμβάνει υποστήριξη για συγχρονισμό πολλαπλών περιπτώσεων, όπως αναφέρεται στην ενότητα διαχείρισης. Όταν τρέχετε το ASF σε docker container, μπορείτε προαιρετικά να "opt-in" στη διαδικασία, σε περίπτωση που εκτελείτε πολλαπλά εμπορευματοκιβώτια με ASF και θα θέλατε να συγχρονιστούν μεταξύ τους.
Από προεπιλογή, κάθε ASF τρέχει μέσα σε ένα δοχείο προσάρτησης είναι στάσιμο, πράγμα που σημαίνει ότι δεν πραγματοποιείται συγχρονισμός. Για να ενεργοποιήσετε τον συγχρονισμό μεταξύ τους, πρέπει να δεσμεύσετε την διαδρομή /tmp/ASF
σε κάθε εμπορευματοκιβώτιο ASF που θέλετε να συγχρονίσετε, σε ένα, κοινόχρηστη διαδρομή στον υπολογιστή docker σας, σε λειτουργία ανάγνωσης-εγγραφής. Αυτό επιτυγχάνεται ακριβώς το ίδιο με τη δέσμευση ενός όγκου που περιγράφηκε παραπάνω, ακριβώς με διαφορετικές διαδρομές:
mkdir -p /tmp/ASF-g1
docker run -v /tmp/ASF-g1:/tmp/ASF -v /home/archi/ASF/config:/app/config --name asf1 --pull always justarchi/archisteamfarm
docker run -v /tmp/ASF-g1:/tmp/ASF -v /home/john/ASF/config:/app/config --name asf2 --pull always justarchi/archtarchi/archisteamfarm
# Και ούτω καθεξής, όλα τα εμπορευματοκιβώτια ASF είναι τώρα συγχρονισμένα μεταξύ τους
Συνιστούμε να δεσμεύσετε τον κατάλογο /tmp/ASF
του ASF επίσης σε έναν προσωρινό κατάλογο /tmp
στον υπολογιστή σας, αλλά φυσικά είστε ελεύθεροι να επιλέξετε οποιοδήποτε άλλο που ικανοποιεί τη χρήση σας. Κάθε περιέκτης ASF που αναμένεται να συγχρονιστεί θα πρέπει να έχει τον κοινόχρηστο κατάλογο /tmp/ASF
με άλλους περιέκτες που συμμετέχουν στην ίδια διαδικασία συγχρονισμού.
Όπως έχετε πιθανώς μαντέψει από το παράδειγμα παραπάνω, είναι επίσης δυνατό να δημιουργήσετε δύο ή περισσότερες «ομάδες συγχρονισμού», με τη δέσμευση διαφορετικών διαδρομών υποδοχής docker σε /tmp/ASF
.
Η τοποθέτηση /tmp/ASF
είναι εντελώς προαιρετική και στην πραγματικότητα δεν συνιστάται, εκτός αν θέλετε ρητά να συγχρονίσετε δύο ή περισσότερα δοχεία ASF. Δεν συνιστούμε την τοποθέτηση /tmp/ASF
για χρήση ενός εμπορευματοκιβωτίου, καθώς δεν φέρνει απολύτως κανένα όφελος αν περιμένετε να τρέξετε μόνο ένα εμπορευματοκιβώτιο ASF, and it mightθα μπορούσε actuallyπράγματι cause issues that could otherwise be avoidedαποφεύγεται .
Το ASF σας επιτρέπει να περάσετε ορίσματα γραμμής εντολών σε docker container μέσω μεταβλητών περιβάλλοντος. Θα πρέπει να χρησιμοποιήσετε συγκεκριμένες μεταβλητές περιβάλλοντος για τους υποστηριζόμενους διακόπτες και ASF_ARGS
για τα υπόλοιπα. Αυτό μπορεί να επιτευχθεί με τον διακόπτη -e
που προστίθεται σε λειτουργία προσάρτησης ``, για παράδειγμα:
docker run -it -e "ASF_CRYPTKEY=MyPassword" -e "ASF_ARGS=--no-config-migrate" --name asf --pull always justarchi/archisteamfarm
Αυτό θα περάσει σωστά το επιχείρημα -- cryptkey
στη διαδικασία ASF που εκτελείται μέσα στο docker container, καθώς και άλλα args. Φυσικά, αν είστε προχωρημένος χρήστης, τότε μπορείτε επίσης να τροποποιήσετε ENTRYPOINT
ή να προσθέσετε CMD
και να περάσετε μόνοι σας τις προσαρμοσμένες παραμέτρους σας.
Εκτός αν θέλετε να παρέχετε προσαρμοσμένο κλειδί κρυπτογράφησης ή άλλες προηγμένες επιλογές, συνήθως δεν χρειάζεται να συμπεριλάβετε οποιεσδήποτε ειδικές μεταβλητές περιβάλλοντος, καθώς τα docker containers είναι ήδη ρυθμισμένα να τρέξουν με τις συνετές αναμενόμενες προεπιλεγμένες επιλογές του --no-restart
--system-required
, έτσι ώστε οι σημαίες αυτές να μην χρειάζεται να καθορίζονται ρητά στο ASF_ARGS
.
Υποθέτοντας ότι δεν αλλάξατε την προεπιλεγμένη τιμή για την ολική ιδιότητα διαμόρφωσης IPC
, είναι ήδη ενεργοποιημένη. Ωστόσο, θα πρέπει να κάνετε δύο επιπλέον πράγματα για IPC να εργαστούν στο δοχείο Docker. Πρώτον, πρέπει να χρησιμοποιήσετε IPCPassword
ή να τροποποιήσετε την προεπιλογή KnownNetworks
σε προσαρμοσμένο IPC. onfig
για να σας επιτρέψει να συνδεθείτε από το εξωτερικό χωρίς να χρησιμοποιήσετε ένα. Εκτός αν ξέρετε πραγματικά τι κάνετε, απλά χρησιμοποιήστε IPCPassword
. Δεύτερον, θα πρέπει να τροποποιήσετε την προεπιλεγμένη διεύθυνση ακρόασης του localhost
, καθώς ο docker δεν μπορεί να κάνει δρομολόγηση εκτός της κυκλοφορίας στη διεπαφή loopback. Ένα παράδειγμα μιας ρύθμισης που θα ακούει σε όλες τις διεπαφές θα ήταν το http://*:1242
. Φυσικά, μπορείτε επίσης να χρησιμοποιήσετε πιο περιοριστικούς δεσμούς, όπως το τοπικό δίκτυο LAN ή VPN μόνο, αλλά πρέπει να είναι μια διαδρομή προσβάσιμη από το εξωτερικό - δεν θα κάνει ο localhost
, καθώς η διαδρομή είναι εξ ολοκλήρου μέσα σε μηχανή επισκεπτών.
Για να κάνετε τα παραπάνω θα πρέπει να χρησιμοποιήσετε προσαρμοσμένη ρύθμιση IPC όπως αυτή που ακολουθεί:
◆
"Kestrel": {
"Τελικά Σημεία": {
"HTTP": {
"Url": "http://*:1242"
}
}
}
}
Μόλις δημιουργήσουμε IPC σε μη κυκλική διασύνδεση, πρέπει να πούμε στο docker να χαρτογραφήσει τη θύρα 1242/tcp
είτε με τον διακόπτη -P
είτε -p
.
Για παράδειγμα, αυτή η εντολή θα εκθέσει τη διεπαφή ASF IPC σε υπολογιστή (μόνο):
docker run -it -p 127.0.0.1:1242:1242 -p [::1]:1242:1242 --name asf --pull always justarchi/archisteamfarm
Αν ρυθμίσετε τα πάντα σωστά, docker τρέχει την παραπάνω εντολή
θα κάνει IPC διεπαφή από τον υπολογιστή σας, στο πρότυπο localhost:1242
διαδρομή που τώρα ανακατευθύνεται σωστά στον επισκέπτη σας. Είναι επίσης ωραίο να σημειώσουμε ότι δεν εκθέτουμε περαιτέρω αυτή τη διαδρομή, έτσι η σύνδεση μπορεί να γίνει μόνο εντός docker host, και ως εκ τούτου τη διατήρηση ασφαλής. Φυσικά, μπορείτε να εκθέσετε τη διαδρομή περαιτέρω αν γνωρίζετε τι κάνετε και να εξασφαλίσετε τα κατάλληλα μέτρα ασφαλείας.
Συνδυάζοντας όλη τη γνώση παραπάνω, ένα παράδειγμα μιας πλήρους εγκατάστασης θα μοιάζει κάπως έτσι:
εκτέλεση docker -p 127.0.0.1:1242:1242 -p [::1]:1242:1242 -v /home/archi/ASF/config:/app/config -v /home/archi/ASF/plugins:/app/plugins --name asf --pull always justarchi/archisteamfarm
Αυτό υποθέτει ότι θα χρησιμοποιήσετε ένα μόνο ASF container, με όλα τα ASF config αρχεία σε /home/archi/ASF/config
. Θα πρέπει να τροποποιήσετε τη διαδρομή διαμόρφωσης σε αυτή που ταιριάζει με τον υπολογιστή σας. Είναι επίσης δυνατό να παρέχετε προσαρμοσμένα plugins για το ASF, το οποίο μπορείτε να βάλετε σε /home/archi/ASF/plugins
. Αυτή η ρύθμιση είναι επίσης έτοιμη για προαιρετική χρήση IPC εάν έχετε αποφασίσει να συμπεριλάβετε IPC. onfig
στον κατάλογο ρυθμίσεων σας με ένα περιεχόμενο όπως παρακάτω:
◆
"Kestrel": {
"Τελικά Σημεία": {
"HTTP": {
"Url": "http://*:1242"
}
}
}
}
Όταν έχετε ήδη το ASF docker container έτοιμο, δεν χρειάζεται να χρησιμοποιείτε το docker εκτελέσετε το
κάθε φορά. Μπορείτε εύκολα να σταματήσετε/ξεκινήσετε το δοχείο προσάρτησης ASF με το docker να σταματήσει asf
και docker να ξεκινήσει asf
. Keep in mind that if you're not using latest
tag then using up-to-date ASF will still require from you to docker stop
, docker rm
and docker run
again. Αυτό οφείλεται στο γεγονός ότι πρέπει να ξαναχτίσετε το δοχείο σας από τη φρέσκια εικόνα προσάρτησης ASF κάθε φορά που θέλετε να χρησιμοποιήσετε την έκδοση ASF που περιλαμβάνεται σε αυτή την εικόνα. Στο πιο πρόσφατο
tag, το ASF έχει συμπεριλάβει την ικανότητα αυτόματης ενημέρωσης, έτσι η ανοικοδόμηση της εικόνας δεν είναι απαραίτητη για τη χρήση up-to-ημερομηνία ASF (αλλά εξακολουθεί να είναι μια καλή ιδέα να το κάνετε από καιρό σε καιρό για να χρησιμοποιήσετε φρέσκο. ET εξαρτήσεις χρόνου εκτέλεσης και το υποκείμενο λειτουργικό σύστημα, το οποίο μπορεί να χρειάζεται όταν πηδά σε σημαντικές ενημερώσεις έκδοσης ASF).
Όπως υπαινίχθηκε από τα παραπάνω, το ASF σε ετικέτα άλλη από το πιο πρόσφατο
δεν θα ενημερωθεί αυτόματα, που σημαίνει ότι εσείς είστε υπεύθυνοι για τη χρήση up-to-date justarchi/archisteamfarm
repo. Αυτό έχει πολλά πλεονεκτήματα, όπως συνήθως η εφαρμογή δεν θα πρέπει να αγγίξει το δικό της κώδικα κατά την εκτέλεση, αλλά κατανοούμε επίσης την ευκολία που προέρχεται από το να μην χρειάζεται να ανησυχείτε για την έκδοση ASF στο δοχείο docker σας. Αν ενδιαφέρεστε για τις καλές πρακτικές και τη σωστή χρήση docker, κυκλοφόρησε το
tag είναι αυτό που θα προτείνουμε αντί για το τελευταίο
, αλλά αν δεν μπορείτε να ενοχληθείτε με αυτό και απλά θέλετε να κάνετε το ASF τόσο την εργασία όσο και την αυτόματη ενημέρωση, τότε θα κάνει το τελευταίο
.
Συνήθως θα πρέπει να εκτελέσετε το ASF σε docker container με Headless: true
global setting. Αυτό θα πει σαφώς ASF ότι δεν είστε εδώ για να παρέχετε τα στοιχεία που λείπουν και δεν θα πρέπει να τα ζητήσετε. Φυσικά, για την αρχική ρύθμιση θα πρέπει να εξετάσει αφήνοντας αυτή την επιλογή στο false
ώστε να μπορείτε εύκολα να ρυθμίσετε τα πράγματα, αλλά μακροπρόθεσμα δεν είστε συνήθως συνδεδεμένοι με την κονσόλα ASF, Ως εκ τούτου, θα είχε νόημα να ενημερώσετε το ASF σχετικά με αυτό και να χρησιμοποιήσετε την εντολή εισόδου
εάν προκύψει ανάγκη. Με αυτόν τον τρόπο το ASF δεν θα χρειαστεί να περιμένει απείρως για την είσοδο του χρήστη που δεν θα συμβεί (και σπατάλη πόρων ενώ το κάνετε). Θα επιτρέψει επίσης την εκτέλεση της ASF σε μη διαδραστική λειτουργία εντός εμπορευματοκιβωτίου, η οποία είναι κρίσιμη π.χ. όσον αφορά τα σήματα προώθησης, καθιστώντας δυνατό για την ASF να κλείσει χαριτωμένα στο docker stop asf
request.
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
- 🏡 Αρχική
- 🔧 Παραμετροποίηση
- 💬 Συχνές Ερωτήσεις
- ⚙️ Ρύθμιση (ξεκινήστε εδώ)
- 👥 Εξαργύρωση παιχνιδιών παρασκηνίου
- 📢 Εντολές
- 🛠️ Συμβατότητα
- 🧩 ItemsMatcherPlugin
- 📋 Διαχείριση
- ⏱️ Επιδόσεις
- 📡 Απομακρυσμένη επικοινωνία
- 👪 Κοινή χρήση Steam με την οικογένεια
- 🔄 Ανταλλαγές