Hüppa põhisisu juurde Hüppa navigatsiooni juurde Hüppa jaluse juurde
Piiratud aja jooksul: Disainipartneri programm — BUSINESS pakett eluaegselt

Repositooriumi hargnemine

Klooni terve repositoorium (rakendus, andmebaas, failid) sekunditega. Ükskõik milline suurus. Null lisakettaruumi.

Repositooriumi forki tegemine

See on võtmetähtsusega funktsioon: klooni terve tootmiskeskkond (rakendus, andmebaas, konfiguratsioonifailid) sekunditega. Suvaline suurus. Null lisaruumi kettal. Tee forki nii palju kordi kui soovid.

Moto: klooni tootmine, rikku mitte midagi.

Vaata juhendvideot

Seadista midagi kaotada

Esmalt loo töötavas rakenduses fail, et saaksid tõestada forki isolatsiooni. Ava repositoorium VS Code’is:

rdc vscode connect -m my-server -r my-app

Loo repositooriumi sees markerifail:

time echo "Hello from production" > index.html

Nüüd tee fork.

Fork

time rdc repo fork --parent my-app -m my-server --tag experiment --up

Parent fans out into independent clones

Üks käsk. See kloonib kõik (rakenduse, andmebaasi, konfiguratsioonifailid) sekunditega. Käivita uuesti ja saad veel ühe sõltumatu klooni.

Miks on see nii kiire?

Sharing a folder link is the same speed regardless of the folder's size

Kujuta ette kausta lingi jagamist. Link on sama olenemata sellest, kas kaust on väike või suur. Kaust on raske, link on kerge.

1 GB, 100 GB, 1 TB. Same time, every time.

Forki tegemine toimib samamoodi. 1 GB, 100 GB, 1 TB. Sama aeg, iga kord.

Mis on jagatud, mis on sinu

Many mirrors, one sun: shared base, your changes are yours

Mõtle vanemrepositooriumist kui päikesest. Sa ei saa päikest kinni hoida, kuid saad hoida peeglit, mis seda peegeldab. See peegel on sinu fork. Maali peeglile ja sinu joonistused on sinu omad. Päike jääb samaks, olenemata sellest, kui palju peegleid selle poole vaatab.

Sa ei saa päikest kinni hoida, kuid saad seda hoida peeglis.

Mis juhtub, kui vanem muutub hiljem?

A fork is a frozen photograph; the parent keeps flowing like a river

Nüüd mõtle jõele. Vesi voolab edasi. Iga hetk on see erinev. Forki tehes teed jõest foto, mis on sellel hetkel külmutatud. Jõgi voolab edasi. Sinu foto ei voola.

Kui vanemrepositoorium muutub hiljem, jääb sinu fork sinna, kus ta oli.

Sa ei saa jõge kinni hoida, kuid saad seda hoida fotol.

Kettakasutus jääb tasaseks

Five forks of a 100 GB repo, still about 100 GB total

Seepärast sinu ketas ei plahvata. Viis forki 100 GB repositooriumist? Kokku ikka umbes 100 GB. Maksad kettaruumi ainult selle eest, mida igas forkis muudad.

Tee fork viis korda kui soovid. Sinu ketas ei märkagi.

Mida forkid ei päri: saladusi

On üks asi, mida fork tahtlikult ei järgi: saladused. Fork algab ilma API võtmete, andmebaasi paroolide ja Stripe tokeniteta. Seepärast töötab “klooni tootmine, rikku mitte midagi” tegelikkuses. Sinu liivakast ei saa reaalsetelt klientidelt arveid väljastada, sest see ei saa sind imiteerida. Seadistame selle korralikult juhendvideol Saladuste haldamine.

Kontrolli isolatsiooni

Loetlege mõlemad repositooriumid kõrvuti:

time rdc repo list -m my-server

Näed my-app ja my-app:experiment töötamas üheaegselt.

Algses repositooriumis kontrolli, mis töötab:

time docker ps

Pane tähele tööaega. Need on algsed konteinerid. Nüüd lülitu forkile:

rdc vscode connect -m my-server -r my-app:experiment
time docker ps

Samad kujutised, kuid tööaeg on värske. Need käivitusid forki tegemisel.

Tee erinevus veelgi ilmselgemaks. Lisa ainult forkile konteiner:

time docker run --rm -it -d nginx
time docker ps

Nginx töötab, kuid ainult selles forkis.

Proovi midagi hävitavat:

time rm index.html

Siin kadus. Nüüd hüppa tagasi originaalile:

rdc vscode connect -m my-server -r my-app
time docker ps

Nginxi pole. Forki konteinerid jäid forki. Ja index.html on siin ikka alles, puutumata. Originaal ei teadnud, et midagi juhtus. Samad kujutised, eraldi Dockeri deemonid, eraldi failisüsteemid.

Puhastamine

Kui oled lõpetanud, kustuta lihtsalt fork:

time rdc repo delete --name my-app:experiment -m my-server

Originaal jääb täpselt selliseks, nagu ta oli. Tee fork, katse, riku asju, kustuta. Riskita.


Edasi: Saladuste haldamine.