-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Docker nl NL
ASF is beschikbaar als docker container. Onze docker pakketten zijn momenteel beschikbaar op ghcr.io en Docker Hub.
Het is belangrijk om op te merken dat het uitvoeren van ASF in de Docker container wordt beschouwd als geavanceerde installatie, dat niet nodig is voor de overgrote meerderheid van gebruikers en meestal geen voordelen geeft boven container-less setup. Als u de Docker beschouwt als een oplossing voor het uitvoeren van ASF als een dienst, bijvoorbeeld door het automatisch te starten met uw OS, dan zou je eens moeten overwegen om management te lezen en een juiste systemd
service in te stellen die bijna altijd **** een beter idee is dan ASF te gebruiken in een Docker container.
Het uitvoeren van ASF in de Docker container gaat meestal over verschillende nieuwe problemen en problemen die u zelf moet aanpakken en oplossen. This is why we strongly recommend you to avoid it unless you already have Docker knowledge and don't need help understanding its internals, about which we won't elaborate here on ASF wiki. Deze sectie is voornamelijk voor geldige gebruiksgevallen van zeer complexe opstellingen, voor wat betreft geavanceerd netwerken of beveiliging buiten standaard sandboxing waarmee ASF wordt geleverd in systemd
service (die al zorgt voor superieure proces isolatie door middel van zeer geavanceerde beveiligingsmechanismen). Voor die handmatige hoeveelheid mensen leggen we hier betere ASF-concepten uit met betrekking tot de verenigbaarheid van Dockers, en alleen dat, je gaat ervan uit dat je zelf voldoende Docker kennis hebt als je besluit om het samen met ASF te gebruiken.
ASF is beschikbaar via 4 soorten tags:
Deze tag verwijst altijd naar de ASF gemaakt van de laatste commit in main
branch, die hetzelfde werkt als het laatste artefact rechtstreeks uit onze CI pijplijn. Meestal moet je deze tag vermijden, omdat het het hoogste niveau is van bugged software voor ontwikkelaars en geavanceerde gebruikers voor ontwikkelingsdoeleinden. De afbeelding wordt bijgewerkt met elke commit in de main
GitHub branch Daarom kunt u verwachten dat updates (en spullen worden verbroken). Het is hier voor ons om de huidige status van het ASF-project te markeren die niet noodzakelijkerwijs stabiel of getest hoeft te worden, zoals in onze vrijheidscyclus is aangegeven. Dit label mag niet in een productieomgeving worden gebruikt.
Vergelijkbaar met de bovenstaande tag verwijst altijd naar de nieuwste released ASF-versie, inclusief pre-releases. Vergeleken met hoofd
tag, wordt deze afbeelding bijgewerkt telkens wanneer een nieuwe GitHub tag wordt pusht. Toegewijd aan geavanceerde/krachtige gebruikers die graag aan de rand wonen wat tegelijkertijd als stabiel en vers kan worden beschouwd. Dit is wat we zouden aanbevelen als je geen gebruik wilt maken van nieuwste
tag. In de praktijk werkt het hetzelfde als rollend label wijst naar de meest recente versie van A.B.C.D
op het moment van pullen. Houd er rekening mee dat het gebruik van deze tag gelijk is aan het gebruik van onze pre-releases.
This tag in comparison with others, is the only one that includes ASF auto-updates feature and points to the latest stable ASF version. Het doel van deze tag is om een sane standaard Docker container te bieden die in staat is zelf-update uit te voeren, OS-specifieke build van ASF. Daarom hoeft de afbeelding niet zo vaak mogelijk te worden bijgewerkt. zoals inbegrepen de ASF-versie altijd in staat zal zijn zichzelf aan te passen indien nodig. Natuurlijk kan UpdatePeriode
veilig worden uitgeschakeld (ingesteld op 0
maar in dit geval moet u waarschijnlijk gebruik maken van bevroren A. .C.D
release in plaats daarvan. Op dezelfde manier kunt u de standaard UpdateChannel
aanpassen om in plaats daarvan auto-update uitgegeven
tag te maken.
Vanwege het feit dat de laatste afbeelding `` beschikt over de mogelijkheid om automatisch te updaten, het bevat lege OS met OS-specifieke linux
ASF versie, in tegenstelling tot alle andere tags die OS bevatten met . ET runtime en `algemene` ASF versie. Dit komt omdat nieuwere (bijgewerkte) ASF-versie mogelijk ook nieuwere runtime nodig heeft dan de versie waarmee de afbeelding mogelijk gemaakt kan worden. waarvoor anders een afbeelding opnieuw gebouwd zou moeten worden, waardoor de geplande gebruiksaanwijzing ongedaan gemaakt zou moeten worden.
Vergelijkt met bovenstaande tags is deze tag volledig bevroren, wat betekent dat de afbeelding niet zal worden bijgewerkt zodra deze gepubliceerd is. Dit werkt vergelijkbaar met onze GitHub releases die nooit worden aangeraakt na de eerste release, wat zorgt voor een stabiele en bevroren omgeving. Meestal moet je deze tag gebruiken als je een specifieke ASF-versie wilt gebruiken en je geen automatische updates wilt gebruiken (bv. . degenen die aangeboden worden in de nieuwste `` tag).
Dat hangt af van wat je zoekt. Voor de meerderheid van gebruikers zou de nieuwste
tag de beste moeten zijn, omdat het precies aanbiedt wat desktops ASF doet, alleen in speciale Docker container als service. Mensen die hun beelden heel vaak opnieuw opbouwen en in plaats daarvan de voorkeur geven aan volledige controle met ASF-versie gekoppeld aan de opgegeven release zijn welkom om released
tag te gebruiken. Als je in plaats daarvan een bepaalde bevroren ASF versie wilt gebruiken die nooit zal veranderen zonder duidelijke intentie, A. .C.D
releases zijn beschikbaar voor je omdat je vaste ASF mijlpalen hebt waarop je altijd terug kunt vallen.
Over het algemeen ontmoedigen we het proberen van belangrijkste
versies, omdat die er zijn voor ons om de huidige status van ASF project te markeren. Niets garandeert dat een dergelijke staat naar behoren zal functioneren. maar natuurlijk ben je meer dan welkom om ze te proberen als je geΓ―nteresseerd bent in ASF-ontwikkeling.
Afbeelding van de ASF docker is momenteel gebouwd op linux
platform target 3 architecturen - x64
, arm
en arm64
. U kunt meer over ze lezen in compatibiliteit sectie.
Onze tags gebruiken meerdere platform manifest, dit betekent dat Docker die op uw machine is geΓ―nstalleerd automatisch de juiste afbeelding voor uw platform zal selecteren bij het pullen van de afbeelding. Als je toevallig een specifieke platformafbeelding wilt trekken die niet overeenkomt met de afbeelding die je momenteel draait, u kunt dat doen via --platform
switch in de juiste docker commando's, zoals docker run
. Zie docker documentatie op afbeelding voor meer informatie.
Voor volledige referentie moet u **officiΓ«le docker documentatie**gebruiken, We zullen alleen het basisgebruik in deze handleiding dekken, je bent meer dan welkom om dieper te graven.
Ten eerste moeten we controleren of onze docker correct werkt, dit zal dienen als ons ASF "hallo wereld":
docker run -it --name asf --pull always --rm justarchi/archisteamfarm
docker run
maakt een nieuwe ASF docker container voor jou en voert deze uit in de voorgrond (-it
). --pull always
zorgt ervoor dat de actuele afbeelding eerst wordt getoond en --rm
zorgt ervoor dat onze container zal worden verwijderd zodra hij is gestopt, omdat we alleen maar testen of alles nu goed werkt.
Als alles succesvol eindigde, na het trekken van alle lagen en het starten van de container, ASF is correct gestart en heeft ons verteld dat er geen gedefinieerde bots zijn. wat goed is - we hebben geverifieerd dat ASF in docker goed werkt. Raak CTRL+C
om het ASF-proces en daarmee ook de container te beΓ«indigen.
Als je de opdracht van nabij bekijkt, zul je merken dat we geen enkele tag hebben uitgegeven, die automatisch standaard is ingesteld op laatste
een. Als je een andere tag dan laatste
wilt gebruiken, bijvoorbeeld released
, dan moet je het expliciet zeggen:
docker run -it --name asf --pull always --rm justarchi/archisteamfarm:released
Als je ASF gebruikt in een docker container dan moet je het programma zelf configureren. U kunt het op verschillende manieren doen. maar de aanbevolen map is om ASF config
te maken op lokale machine, dan als gedeeld volume in ASF-docker container koppelen.
We gaan er bijvoorbeeld van uit dat uw ASF configuratiemap zich in /home/archi/ASF/config
map bevindt. Deze map bevat de kern ASF.json
en bots die we willen uitvoeren. Nu hoeven we alleen maar die map aan te hangen als gedeeld volume in onze docker container, waar ASF zijn configuratiemap verwacht (/app/config
).
docker run -it -v /home/archi/ASF/config:/app/config --name asf --pull always justarchi/archisteamfarm
En dat is het, nu zal je ASF docker container in een gedeelde map met je lokale machine in lees- en schrijfmodus gebruiken; dat is alles wat je nodig hebt om ASF te configureren. Op dezelfde manier kun je andere volumes die je wilt delen met ASF, zoals /app/logs
of /app/plugins
koppelen.
Dit is natuurlijk maar een concrete manier om te bereiken wat wij willen, niets weerhoudt u ervan bijv. maak uw eigen Dockerfile
die uw configuratiebestanden kopieert naar /app/config
map in ASF docker container. We dekken alleen basisgebruik in deze handleiding.
Standaard ASF container wordt geΓ―nitialiseerd met standaard root
gebruiker, waarmee het de interne machtigingen kan verwerken en vervolgens kan overschakelen naar asf
(UID 1000
) gebruiker voor het resterende deel van het hoofdproces. Dit zou voor de overgrote meerderheid van de gebruikers bevredigend moeten zijn. het beΓ―nvloedt het gedeelde volume omdat nieuw gegenereerde bestanden normaal eigendom zullen zijn van asf
gebruiker, welke niet de gewenste situatie is als je een andere gebruiker wilt voor je gedeelde volume.
Er zijn twee manieren waarop je de gebruiker ASF onder kan veranderen. De eerste aanbevolen, is om ASF_USER
omgevingsvariabele met doel UID waar je onder wilt lopen. Ten tweede, een alternatief, is het slagen van een --user
flag, wat direct wordt ondersteund door een docker.
Je kunt je uid
bekijken met bijvoorbeeld id -u
commando, en dan opgeven zoals hierboven gespecificeerd. Bijvoorbeeld, als je doelgebruiker uid
van 1001:
docker run -it -e ASF_USER=1001 -v /home/archi/ASF/config:/app/config --name asf --pull always justarchi/archisteamfarm
# als u de beperkingen onder
docker begrijpt, -it -it 1001 -v /home/archi/ASF/config:/app/config --name asf --pull always justarchi/archisteamfarm
Het verschil tussen ASF_USER
en --user
vlag is subtiel, maar belangrijk. ASF_USER
is een aangepast mechanisme ondersteund door ASF, in dit scenario begint de docker container nog steeds als root
, en daarna start ASF opstart script de hoofdbinary onder ASF_USER
. Wanneer je --user
vlag gebruikt, start je het hele proces, inclusief ASF opstart script als een gebruiker. De eerste optie staat ASF het opstartscript toe om voor jou automatisch machtigingen en andere dingen te verwerken, om enkele veelvoorkomende problemen op te lossen die je mogelijk hebt gemaakt. bijvoorbeeld zorgt het ervoor dat je /app
en /asf
mappen eigendom zijn van ASF_USER
. In het tweede scenario, omdat we niet draaien als root
, we kunnen dat niet doen, en je verwacht dat je dat zelf op voorhand zelf aanpast.
Als je hebt besloten om --user
vlag te gebruiken, je moet het eigendom van alle ASF-bestanden veranderen van standaard asf
naar je nieuwe aangepaste gebruiker. U kunt dit doen door de opdracht hieronder uit te voeren:
# Alleen uitvoeren als u geen ASF_USER
docker exec -u root asf chown -hR 1001 /app /asf gebruikt
Dit hoeft slechts één keer te worden gedaan nadat u uw container met docker
hebt gemaakt, en alleen als u heeft besloten een aangepaste gebruiker via --user
docker vlag te gebruiken. Vergeet ook niet om het argument 1001
in commando hierboven te veranderen naar de UID
waar je ASF onder wilt uitvoeren.
Als u SELinux gebruikt in een gedwongen toestand op uw OS, dat is de standaard voor bijvoorbeeld RHEL-based distros, dan moet je het volume koppelen :Z
optie, welke de juiste SELinux context zal instellen.
docker run -it -v /home/archi/ASF/config:/app/Z --name asf --pull always starchi/archisteamfarm
Dit stelt ASF in staat om het volume van de docker te vertragen.
ASF bevat ondersteuning voor meerdere instanties synchronisatie, zoals vermeld in management sectie. Bij het uitvoeren van ASF in docker container, kan je optioneel "opt-in" het proces doorlopen, in het geval u meerdere containers met ASF heeft en u wilt dat ze met elkaar synchroniseren.
Standaard is elke ASF die draait in een docker container, standalone wat betekent dat er geen synchronisatie plaatsvindt. Om synchronisatie tussen hen in te schakelen, moet u het pad /tmp/ASF
in elke ASF-container die u wilt synchroniseren, binden naar één, gedeeld pad in je docker host, in lees- en schrijfmodus. Dit is precies hetzelfde als het koppelen van een volume dat hierboven werd beschreven, met verschillende paden:
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 starchi/archiamfarm
# alle ASF containers zijn nu gesynchroniseerd met elkaar
We raden aan om ASF's /tmp/ASF
map ook te binden aan een tijdelijke /tmp
map op je machine, maar natuurlijk ben je vrij om een andere te kiezen die tevreden is met je gebruik. Elke ASF-container die naar verwachting zal worden gesynchroniseerd moet de map /tmp/ASF
gedeeld hebben met andere containers die deelnemen aan hetzelfde synchronisatieproces.
Omdat je waarschijnlijk uit het bovenstaande voorbeeld hebt geraden, is het ook mogelijk om twee of meer "synchronisatiegroepen", te maken door verschillende docker host paden te koppelen in ASF's /tmp/ASF
.
Het koppelen van /tmp/ASF
is volledig optioneel en wordt niet aanbevolen, tenzij je twee of meer ASF containers wilt synchroniseren. We raden niet aan om /tmp/ASF
te monteren voor gebruik van de enkelcontainer want het levert absoluut geen voordelen op als je verwacht slechts één ASF-container te gebruiken, en het zou zelfs tot kwesties kunnen leiden die anders vermeden zouden kunnen worden.
ASF stelt je in staat om command-line argumenten in docker container door omgevingsvariabelen te loodsen. Je moet specifieke omgevingsvariabelen gebruiken voor ondersteunde schakelaars en ASF_ARGS
voor de rest. Dit kan worden bereikt met een -e
switch toegevoegd aan docker run
, bijvoorbeeld:
docker run -it -e "ASF_CRYPTKEY=MyPassword" -e "ASF_ARGS=--no-config-migrate" --name asf --pull always justarchi/archisteamfarm
Dit komt goed overeen met uw --cryptkey
argument om ASF te laten draaien in docker container, evenals andere args. Natuurlijk, als je een geavanceerde gebruiker bent, kun je ook ENTRYPOINT
of CMD
toevoegen en zelf je persoonlijke argumenten doorgeven.
Tenzij u aangepaste encryptiesleutel of andere geavanceerde opties wilt geven, hoeft u meestal geen speciale omgevingsvariabelen toe te voegen, omdat onze docker containers al zijn geconfigureerd om te draaien met de verwachte standaard opties van --no-herstart
--system-required
, dus die vlaggen hoeven niet expliciet te worden gespecificeerd in ASF_ARGS
.
Ervan uitgaande dat u de standaardwaarde voor IPC
**algemene configuratie eigenschap**niet heeft gewijzigd, het is al ingeschakeld. U moet echter twee extra dingen doen om ervoor te zorgen dat de IPC in de Docker container werkt. Ten eerste moet u IPCPassword
gebruiken of de standaard KnownNetworks
aanpassen in aangepast IPC. Configuratie
om je van de buitenwereld te laten verbinden zonder er een te gebruiken. Tenzij je echt weet wat je aan het doen bent, gebruik IPCPassword
. Ten tweede moet u het standaard afluisteradres van localhost
wijzigen, aangezien docker geen buiten het verkeer naar de achterliggende interface kan reizen. Een voorbeeld van een instelling die op alle interfaces zal luisteren is http://*:1242
. Natuurlijk kunt u ook restrictievere bindingen gebruiken, zoals alleen het lokale LAN of VPN-netwerk. maar het moet een route zijn die toegankelijk is vanaf de buitenkant - localhost
zal niet doen, omdat de route helemaal in de gast is.
Om het bovenstaande te doen moet u een custom IPC config gebruiken, zoals de instelling hieronder:
{
"Kestrel": {
"Endpoints": {
"HTTP": {
"Url": "http://*:1242"
}
}
}
}
Zodra we IPC hebben ingesteld op niet-loopbackinterface we moeten de docker vertellen om ASF's 1242/tcp
poort te gebruiken met -P
of -p
wissel.
Dit commando zou bijvoorbeeld de ASF IPC interface blootstellen aan de host machine (alleen):
docker run -it -p 127.0.0.1:1242:1242 -p [::1]:1242:1242 --name asf --pull always justarchi/archisteamfarm
Als je alles correct hebt ingesteld. docker run
opdracht hierboven maakt IPC interface werk van uw host machine, op standaard localhost:1242
route die nu goed doorgestuurd is naar je gast machine. Het is ook leuk om op te merken dat we deze route niet verder blootleggen. dus verbinding kan alleen worden gemaakt binnen de doktergastheer, en houdt deze dus beveiligd. Natuurlijk kunt u de route verder uitzetten als u weet wat u aan het doen bent en passende veiligheidsmaatregelen garandeert.
Hele kennis hierboven combineren, een voorbeeld van een volledige installatie zou er als volgt uitzien:
docker run -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 starchi/archich/archiamfarm
Dit veronderstelt dat u een enkele ASF container gebruikt, met alle ASF configuratiebestanden in /home/archi/ASF/config
. Je zou het configuratiepad moeten aanpassen naar het pad dat overeenkomt met je machine. Het is ook mogelijk om aangepaste plug-ins voor ASF te leveren, die je in /home/archi/ASF/plugins
kunt plaatsen. Deze instelling is ook klaar voor optioneel IPC-gebruik als u heeft besloten om IPC toe te voegen.
in uw configuratiemap met een inhoud zoals hieronder:
{
"Kestrel": {
"Endpoints": {
"HTTP": {
"Url": "http://*:1242"
}
}
}
}
Als je de ASF-docker container al klaar hebt, hoef je niet elke keer docker uitvoeren
te gebruiken. Je kunt gemakkelijk ASF docker container stoppen/starten met docker stop asf
en docker start asf
. Houd er rekening mee dat als je geen nieuwste
tag gebruikt, het gebruik van de up-to-date ASF nog steeds nodig heeft voor docker stop
, docker rm
en docker is
weer. Dit komt omdat je je container elke keer opnieuw moet bouwen vanuit de frisse afbeelding van ASF docker als je ASF-versie in die afbeelding wilt gebruiken. In laatste
tag heeft ASF de mogelijkheid opgenomen om zichzelf automatisch te updaten. het herbouwen van de afbeelding is dus niet nodig voor het gebruik van actuele ASF (maar het is nog steeds een goed idee om het af en toe te doen om vers te gebruiken. ET runtime afhankelijkheden en de onderliggende OS die nodig kunnen zijn bij het springen over de belangrijkste ASF versie updates).
Zoals aangegeven door bovenstaande, zal ASF niet automatisch zichzelf updaten in een andere tag dan nieuwste
dat betekent dat u de leiding heeft over het gebruik van moderne justarchi/archisteamfarm
repo. Dit heeft veel voordelen omdat de app meestal zijn eigen code niet mag aanraken wanneer deze wordt uitgevoerd, Maar we begrijpen ook het gemak dat komt doordat we ons geen zorgen hoeven te maken over de ASF-versie in uw docker-container. Als u waarde hecht aan goede praktijken en een correct doktergebruik, released
tag is wat we hadden voorgesteld in plaats van nieuwste
maar als je er niet omheen kunt en je gewoon ASF wilt laten werken en zichzelf automatisch bijwerken, dan zal laatste
doen.
ASF kun je gebruiken in de docker container met Headless: true
global setting. Dit zal ASF duidelijk vertellen dat je hier niet bent om ontbrekende details te verstrekken en het zou er niet om moeten vragen. Natuurlijk moet je voor de initiΓ«le installatie overwegen om die optie te verlaten op false
zodat je gemakkelijk dingen kunt instellen. maar op de lange termijn ben je meestal niet bevestigd aan ASF-console, Daarom zou het zinvol zijn ASF hierover te informeren en input
commando te gebruiken indien nodig. Op deze manier hoeft ASF niet oneindig te wachten op gebruikersinvoer wat niet zal gebeuren (en verspillingsbronnen terwijl je dit doet). Het staat ASF ook toe om de niet-interactieve modus in de container uit te voeren, wat cruciaal is, bvb. wat betreft signalen door te sturen, waardoor ASF de aanvraag van docker stop asf
kan afsluiten.
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
- π‘ Start
- π§ Configuratie
- π¬ FAQ
- βοΈ instellen (start hier)
- π₯ Productcode-activering op de achtergrond
- π’ Opdrachten
- π οΈ Compatibiliteit
- π§© ItemsMatcherPlugin
- π Beheer
- β±οΈ Prestatie
- :satelliite_antenne: communicatie op afstand
- πͺ Steam-gezinsbibliotheek
- π Handelen
- β¨οΈ Command-line argumenten
- π§ Afbraak
- :spouting_walale: Docker
- π€ uitgebreide FAQ
- π Configuratie met hoge prestaties
- π IPC
- π Lokalisatie
- π Logboekregistratie
- πΎ Low-memory setup
- π΅πΌββοΈ MonitoringPlugin
- π Plugins
- π Beveiliging
- π§© SteamTokenDumperPlugin
- π¦ Third-party
- π΅ Tweestapsverificatie