‫Hoe zit het met geheimen voor lokale ontwikkeling met behulp van de Docker Compose-opdrachtregel. We hebben het tot nu toe over
‫Swarm gehad.
‫Maar ik ben terug op mijn machine en ik heb Docker Compose geïnstalleerd die ik niet in mijn zwerm had,
‫toch?
‫Want nogmaals, Compose is geen productietool.
‫Het is ontworpen voor ontwikkeling.
‫Ik zit in dezelfde geheime voorbeeldmap die we eerder hadden.
‫Je kunt zien dat ik de twee wachtwoordbestanden heb en het Docker Compose-bestand dat we in de zwerm hadden. Om te bewijzen dat ik niet in een zwerm
‫zit, kan ik een
‫docker-knooppunt ls doen, en het
‫zal me echt vertellen dat dit geen zwermmanager is.
‫Ik zit niet in een zwerm, dus ik heb geen toegang tot de Swarm-database of de mogelijkheid om er geheimen in te stoppen.
‫Dus, hoe gaan we hiermee om in lokale ontwikkeling?
‫In het ideale geval kunnen we nog steeds hetzelfde Compose-bestand gebruiken.
‫We kunnen nog steeds dezelfde objecten gebruiken als de omgevingsvariabelen voor postgres.
‫Docker moest een manier bedenken om dit te laten werken in test en dev.
‫Als we een docker
‫compose up -d doen, en dan een docker compose exec psql. Dan heeft een kat op run secrets psql-gebruiker,
‫hoe is ons geheim daar binnengekomen, toch?
‫Omdat we de database niet hebben.
‫Nou, het blijkt dat hier een beetje magie zit.
‫Nou, het is geen magie. Het verbergt zich gewoon achter de schermen, dat wat
‫er feitelijk gebeurt met Compose niet veilig is, maar het werkt wel.
‫Het bindt in feite mounts tijdens runtime dat daadwerkelijke bestand op mijn harde schijf in de container.
‫Het doet eigenlijk gewoon een -v met dat specifieke bestand op de achtergrond.
‫Nogmaals, dit is totaal niet veilig en dat zou ook niet zo moeten zijn.
‫Het is gewoon een manier om dit probleem te omzeilen en ons in staat te stellen met
‫hetzelfde proces en dezelfde omgevingsvariabele geheime informatie te ontwikkelen die we in productie zouden hebben,
‫alleen nu kunnen we het ook lokaal doen. Dat is geweldig, want dat betekent nu dat we kunnen ontwikkelen met
‫dezelfde opstartscripts en op dezelfde manier waarop we omgevingsvariabelen in onze container krijgen, net als in Swarm.
‫En dat is wat we echt willen.
‫We willen onze productieomgeving zoveel mogelijk lokaal afstemmen.
‫U hebt hiervoor de nieuwste versie van Docker Compose nodig.
‫Ik geloof dat het alleen werkt in Docker Compose 11.
‫Ik hoop dat je dat best cool vindt, want ik dacht dat dat een goed compromis
‫voor hen was om ons de geheime commando's te laten gebruiken.
‫Nu zal ik erop wijzen dat dit alleen werkt met op bestanden gebaseerde geheimen.
‫Het zal niet werken met de externe waar we het over hadden.
‫Als we heel snel naar het Compose-bestand kijken, zou ik op bestanden gebaseerde bestanden moeten gebruiken voor mijn lokale ontwikkeling.
‫Misschien, als je extern in je productie gebruikt, moet je misschien een ander Compose-bestand hebben
‫voor ontwikkeling dat het bestandskenmerk hier zou hebben en voorbeeldbestanden, dummy-bestanden in dezelfde map of ergens anders waar je ze zou
‫kunnen opslaan, die zijn gewoon met behulp van een eenvoudig wachtwoord voor ontwikkeling.