‫Nu we geheimen met services hebben gezien, gaan we kijken naar geheimen met stapels. In deze map zit ik in geheimen, voorbeeld
‫twee, en
‫in deze map heb ik een Compose-bestand en vervolgens twee geheimen die zijn opgeslagen in tekstbestanden.
‫Het is dus hetzelfde wachtwoord en dezelfde gebruikersnamen die we in de vorige lezing hadden, maar nu hebben
‫we dit allemaal gedefinieerd in een Compose-bestand. We hebben hier verschillende dingen anders.
‫Het eerste is dat de versie van uw Compose-bestand nu 3 moet zijn. 1. Om geheimen te hebben, moeten we
‫bij de . 1 uitgave van 3.
‫Dus we moesten er 3 hebben om stapels te gebruiken, maar om stapels met geheimen te gebruiken, moeten het er 3. zijn. 1 of nieuwer.
‫Het tweede dat ons zal opvallen, is dat we hier onderaan deze sleutel voor de basisgeheimen hebben en dat het is
‫waar we onze geheimen definiëren.
‫De twee manieren waarop u geheimen in een Compose-bestand kunt doen, zijn door een bestand voor elk geheim te gebruiken
‫of door de geheimen vooraf te maken.
‫Hier gebruiken we eigenlijk alleen bestanden, maar wat
‫we zouden kunnen doen is die geheimen zelf creëren op een andere manier, hetzij via de CLI, zoals
‫je hebt gezien, of misschien rechtstreeks via de API. Dan zouden we gewoon in plaats van het
‫bestand: eronder zou het gewoon extern zeggen: en het zou de naam zijn van het geheim in de lijst met
‫geheimen.
‫We moeten het Compose-bestand vertellen over onze geheimen en waar ze zijn, en dan wijzen we ze daadwerkelijk toe aan
‫de diensten die ze nodig hebben.
‫Dat is de sleutel, want wat we hier echt zeggen, is dat alleen de container
‫die ons geheim wil, ons geheim krijgt. Als dit een gecompliceerd Compose-bestand was waarin we meerdere services hadden, hebben we
‫mogelijk verschillende geheimen voor verschillende services.
‫We zouden ze eerst allemaal onderaan definiëren en dan zouden we ze specifiek toewijzen
‫aan elke service.
‫Ik zal zeggen dat dit eigenlijk wordt beschouwd als de korte vorm of de gemakkelijke manier om de geheimen onder een
‫service te doen.
‫Er is eigenlijk een lang formulier waarmee je dingen kunt definiëren zoals de machtigingen en de
‫gebruikers die daar toegang toe hebben met behulp van de standaard Linux-modus en gebruikers-ID-syntaxis.
‫Dus als je applicaties draaide als een niet-rootgebruiker, zou je deze geheimen willen richten op alleen die gebruiker
‫die er toegang toe heeft.
‫Maar omwille van de eenvoud gebruiken we in dit eerste voorbeeld alleen de korte vorm.
‫Het enige wat ik hoef te doen is dat bestand gebruiken in een standaard stack deploy-opdracht. Dus, implementeer docker-compose, en we zullen
‫dit mydb noemen. U zult zien dat het, net als voorheen, eerst het netwerk heeft gemaakt.
‫In dit geval heeft het eerst de geheimen gemaakt en vervolgens de service gemaakt.
‫Als ik een geheime Docker-look-up deed, dan zul je zien dat de twee daar staan en het volgt
‫dezelfde naamgevingsconventie als alle andere stapelcomponenten, waarbij het altijd de stapelnaam is en dan de naam
‫van het object.
‫Net als in de vorige lezing, als ik op de SQL-server zou springen
‫en daadwerkelijk naar die bestanden zou zoeken, zouden ze daar zijn zoals ze eerder waren; alleen nu worden ze beheerd in ons stapelbestand.
‫Het leuke hier is dat als ik mijn stapel verwijder, het ook de geheimen opruimt en ze verwijdert. Als we in het vorige voorbeeld
‫onze geheimen wilden
‫verwijderen, hadden we een docker-geheim rm moeten doen om ze allemaal te
‫verwijderen. Als laatste herinnering: in deze
‫voorbeelden hebben we tekstbestanden op deze server gebruikt en hebben we het hier over een zwerm met
‫3 knooppunten.
‫Maar als u zich in een productieomgeving bevindt of werkelijk iets dat niet op uw lokale computer staat,
‫moet u de geheimen niet bewaren in bestanden of in het bash-geschiedenisbestand of enige andere plaats die zich mogelijk op die host
‫zou kunnen bevinden.
‫Dat is in de eerste plaats het doel van het hebben van de geheimen tenietdoen. Wat je proces ook is om geheimen
‫in de zwerm te krijgen, weet dat je
‫misschien moet worden opgeruimd als je daar eenmaal klaar bent, zodat je geen resterende geheimen achterlaat die voor
‫mensen gemakkelijk te vinden zijn.