Päiväkirjan hakemistoDockup / kenttämuistio
Note / git-repository-to-production-deployment

Git-repositoriosta tuotantoon: Dockup-käyttöönotto-opas

Git-repositoriosta tuotantoon Dockupilla: luo service, valitse Nixpacks tai Dockerfile, määritä health checkit, ota käyttöön, varmista toiminta ja palauta aiempi versio.

Git-repositorion vieminen tuotantoon edellyttää muutakin kuin remoten yhdistämistä ja deploy-painikkeen painamista. Platformin on tunnettava palvelun kohde, branch, build-menetelmä, start-komento, kuunteluportti, ympäristö, health gate ja palautuspolku. Dockup tekee nämä valinnat näkyviksi ja tukee sekä automaattisia Nixpacks-buildauksia että repositorion omia Dockerfile-tiedostoja.

Tässä oppaassa aloitetaan repositoriosta, jota ei ole koskaan deployattu, ja päädytään varmennettuun URL-osoitteeseen, deployment-historiaan, lokeihin ja testattuun rollback-komentoon.

Mitä ennen ensimmäistä tuotantoonvientiä pitää tarkistaa?

Varmista, että repositorion voi deployata ilman dokumentoimatonta paikallista tilaa. Puhtaan clonen tulee sisältää kaikki riippuvuuksien asentamiseen ja sovelluksen käynnistämiseen tarvittava, salaisuuksia lukuun ottamatta.

Käytä tätä tarkistuslistaa:

TarkistusOdotettu tulos
Oletus-branchTarkoitettu tuotanto-branch on olemassa
Riippuvuuksien lockfileCommittattu toistettavia asennuksia varten
KäynnistysprosessiKuuntelee määritettyä porttia ja osoitetta 0.0.0.0
Health-reittiPalauttaa onnistumisen ilman ulkoisia sivuvaikutuksia
TietokantamigraatiotNiille on määritetty turvallinen suoritusmenettely
SalaisuudetTallennettu Gitin ulkopuolelle
Pysyvät tiedostotKäyttävät volumea, eivät containerin tiedostojärjestelmää
RollbackAiempi deployment voidaan ajaa uudelleen

Asenna CLI ja autentikoi:

npm install -g dockup-cli
export DOCKUP_TOKEN="<TOKEN>"
dockup whoami --json

Listaa olemassa olevat servicet ennen uuden luomista:

dockup services --json

Näin vältät päällekkäiset resurssit ja varmistat tarkan workspacen ja target-käytännön.

Miten Dockup create tukee Git-käyttöönottoa?

Tavallinen ensimmäisen deploymentin komento luo servicen, deployaa sen, odottaa tulosta ja linkittää nykyisen hakemiston:

dockup create api \
  --repo https://github.com/acme/api \
  --project production \
  --branch main \
  --deploy \
  --wait \
  --link \
  --json

Tuloksena syntyvä target on production/api. .dockup-linkin avulla myöhemmät komennot voivat ratkaista kyseisen servicen, kun ne suoritetaan repositorion sisällä, mutta tuotantodokumentaatiossa tulee silti kirjata koko target.

Jos provisiointiyritys keskeytyy, listaa servicet ja tarkista tarkka target ennen kuin yrität luomista uudelleen:

dockup services --json

Jos production/api on jo olemassa, jatka lukemalla sen tila ja deployment-historia. Näin epävarmaa verkkotulosta ei muuteta päällekkäiseksi serviceksi. Säilytä repositorion käyttöoikeustunnukset lähdekoodin ja komentotulosteen ulkopuolella.

Miten Dockup valitsee Nixpacksin tai Dockerfilen?

Jos repositoriossa on Dockerfile, Dockup käyttää sitä. Muussa tapauksessa Nixpacks tunnistaa sovelluksen ja buildaa sen automaattisesti. Näin repositorion eksplisiittinen container-määritys on ensisijainen.

Nixpacks on hyvä ensimmäinen valinta, kun sovellus noudattaa yleisiä ekosysteemin käytäntöjä eikä tarvitse käyttöjärjestelmätason mukautuksia. Dockerfile on hyödyllinen, kun tarvitset tietyn base imagen, järjestelmäpaketteja, multi-stage-buildin, mukautetun runtime-käyttäjän tai tarkat copy-rajat.

Tyhjää Dockerfilea ei tarvitse lisätä vain siksi, että projekti näyttäisi “valmiilta tuotantoon”. Virheellinen Dockerfile voi olla vähemmän toistettava kuin tavanomainen automaattinen build. Käytä Nixpacks vs Dockerfile-oppaan päätösprosessia.

Tarkista service luomisen jälkeen:

dockup info production/api --json

Vastaus sisältää repositorion URL-osoitteen, branchin, deployment-tyypin, portin, build- ja start-asetukset, ympäristöavaimet, custom domainit sekä viimeisimmän deploymentin tiedot.

Jos tunnistetut komennot tarvitsevat yliajon, käytä dokumentoituja asetuksia:

dockup set production/api \
  --build "npm ci && npm run build" \
  --start "npm start" \
  --port 3000 \
  --json

Asetukset tulevat voimaan seuraavassa deploymentissa.

Miten tuotantoympäristö ja health määritetään?

Lisää tavalliset arvot ja salaisuudet erikseen:

dockup env set NODE_ENV=production \
  -s production/api \
  --json

dockup env set DATABASE_URL="$DATABASE_URL" \
  --secret \
  -s production/api \
  --json

Salaiset arvot peitetään, kun ympäristö listataan. Ne voidaan asettaa tai korvata, mutta tallennettua arvoa ei palauteta.

Ympäristömuutokset edellyttävät redeployta, koska käynnissä oleva prosessi ei voi vastaanottaa uutta ympäristöä jälkikäteen. Koko elinkaari kuvataan oppaassa ympäristömuuttujat ja salaisuudet.

Määritä readinessia edustava health gate:

dockup health production/api \
  --path /healthz \
  --interval 5 \
  --timeout 3 \
  --retries 5 \
  --json

Dockup käyttää zero-downtime blue-green -prosessia ja ohjaa liikenteen uuteen deploymentiin vasta, kun readiness on onnistunut. Jos HTTP-polkuja ei ole määritetty, gate voi käyttää TCP-portin readinessia.

Health-reitin tulee varmistaa, että sovellusprosessi on valmis palvelemaan pyyntöjä. Älä tee siitä tuhoavia tarkistuksia tai kalliita koko järjestelmän testejä. Syvät riippuvuustarkistukset voivat aiheuttaa vääriä käyttökatkoja, jos valinnainen service on häiriintynyt.

Miten tuotanto deployataan, sitä seurataan ja toiminta varmennetaan?

Käynnistä release ja odota päätetilaa:

dockup deploy production/api --wait --json

Oletusaikakatkaisu on 900 sekuntia. Exit 0 tarkoittaa onnistumista. deploy_failed ja deploy_timeout ovat nollasta poikkeavia tuloksia, joten shell-skriptit ja CI-järjestelmät pysähtyvät oikein.

Voit seurata buildia NDJSON-muodossa:

dockup logs production/api --build -f --json

Stream päättyy onnistumiseen tai virheeseen. Jos build onnistuu mutta container kaatuu, tarkista runtime-lokit:

dockup logs production/api --json

Onnistuneen releasen jälkeen varmista platformin tila ja julkinen toiminta:

dockup status production/api --json
dockup uptime production/api --hours 24 --json
dockup security production/api --json

Uptime-probet suoritetaan minuutin välein, ja ne raportoivat vasteajan keskiarvon ja p95-arvon. Security scanning tarkistaa imagen CVE-haavoittuvuudet ja konfiguraation. Lisää sovelluskohtainen smoke test varsinaista liiketoimintaendpointia varten; platformin readiness on välttämätön, mutta ei riittävä.

Yksityiskohtainen lokimenetelmä on kuvattu oppaassa build- ja runtime-lokien vianmääritys.

Miten automaattiset deployt ja previewt kannattaa ottaa käyttöön?

Tee ensimmäinen tuotantorelease riittävän manuaalisesti, jotta voit tarkkailla jokaista rajapintaa. Kun build, health gate ja rollback-polku ovat tuttuja, ota pushiin perustuva deployment käyttöön:

dockup auto-deploy production/api --on --json

Automaattisen deploymentin tulee seurata suojattua branchia ja code review -käytäntöä. Push on tuotantotriggeri, joten repositorion käyttöoikeuksista tulee infrastruktuurin käyttöoikeuksia.

Pull request- ja branch-previewt tarjoavat eristetyt URL-osoitteet ja ympäristöt:

dockup pr-preview production/api --on --json
dockup preview branch feature/login production/api --json

Private networking -projektissa previewt liittyvät projektin verkkoon. Ne voivat saavuttaa saman tuotantotietokannan osoitteessa <slug>.internal, mutta Dockup luo previewlle automaattisesti read-only-tietokantakäyttäjän. Preview voi tarkastella tuotantoa muistuttavaa dataa kirjoittamatta siihen.

Tämä ei poista tietosuojaa koskevia velvoitteita. Preview-käyttö tulee silti rajata, auditoida ja sallia vain silloin, kun tuotantodatan lukeminen on sallittua.

Miten virheellinen deployment palautetaan?

Säilytä todisteet ennen palautusta. Lue build-lokit build-virheessä ja runtime-lokit kaatumistilanteessa. Listaa sitten deployment-historia:

dockup deployments production/api -n 20 --json

Valitse deployment ID, jonka tila ja aikaleima tunnetaan, ja aja se uudelleen:

dockup rollback <deploymentId> production/api --json

Rollbackin tulee olla eksplisiittinen incident-toimenpide. Kirjaa epäonnistuneen deploymentin ID, valittu palautus-ID, syy ja jatkokorjaus. Jos tietokantamigraatio ei ole backward compatible, pelkkä sovelluksen rollback ei välttämättä palauta yhteensopivuutta; migraatioiden suunnittelun tulee olla osa release-suunnitelmaa.

Zero-downtime-deployment-opas selittää liikenteen siirron, ja Dockup CLI -referenssi dokumentoi kaikki komentoliput.

Ensimmäisen deploymentin valmistumisraportti

Kun Git-repositoriosta tuotantoon -työnkulku on valmis, tallenna:

  • Tarkka project/service-target.
  • Repositorio ja tuotanto-branch.
  • Build-menetelmä: Nixpacks tai Dockerfile.
  • Build- ja start-komennot, jos niitä on yliajettu.
  • Kuunteluportti ja health-polku.
  • Deployment ID ja päätetila.
  • Tuotanto-URL ja custom domain -suunnitelma.
  • Uptime- ja security-varmennus.
  • Rollback-deployment ID tai valintasääntö.

Tämä raportti muuttaa toisesta deploymentista rutiinitoimenpiteen uuden selvitystyön sijaan.

Erota sovelluksen tila container-imagesta

Service-containerin kirjoitettavaa tiedostojärjestelmää tulee käsitellä korvattavana. Uusi deployment luo uuden version ja rollback ajaa vanhemman imagen uudelleen; ainoastaan vanhan containerin sisään kirjoitetut tiedostot eivät ole kestävä dataratkaisu.

Käytä hallittuja tietokantoja relaatio-, dokumentti- tai cache-tilalle ja liitä volume tiedostoille, joiden on säilyttävä deploymentien välillä. Varmista mount-polut ennen ensimmäistä tuotantoreleasea. Containerisoitu upload-hakemisto, jota ei ole koskaan mountattu, voi vaikuttaa terveeltä, kunnes seuraava deploy poistaa datan.

Tutustu oppaaseen pysyvistä volumeista ja snapshoteista ennen käyttäjien tuottamien tiedostojen siirtämistä. Tietokantadatan osalta käytä tietokantakohtaista backup-järjestelmää sen sijaan, että käsittelisit hot volume snapshotia transaktionaalisesti eheänä varmuuskopiona.

Arvioi ensimmäinen kuukausi keksimättä kiinteää instanssilaskua

Dockup mittaa CPU:n, RAM-muistin ja levyn kulutusta minuutti kerrallaan ja vähentää käytön planin saldosta. Free-plan sisältää 10 dollarin aloitussaldon ja enintään kolme deploymentia; suositeltu Pro-plan maksaa 20 dollaria kuukaudessa ja sisältää 20 dollarin käyttösaldon.

Kun servicellä on todellista liikennettä, tarkista sen CPU-, RAM- ja levynkulutus osoitteessa app.dockup.ai. Käytä päätöksessä havaittua minuuttikohtaista kulutusta — älä arvattua enimmäiskulutusta — ja arvioi sen perusteella, tarvitsevatko service, tietokanta tai pysyvä levy säätöä.

Varmista toinen deployment puhtaassa tilassa

Tee ensimmäisen releasen jälkeen harmiton, tarkistettu muutos ja deployaa uudelleen. Näin varmistat, että repositorion linkki, build-cachen oletukset, health gate, ympäristö ja historia toimivat jatkuvana prosessina eivätkä vain kertaluonteisen provisioinnin onnistumisena.

Pidä target eksplisiittisenä

Kirjaa lopullinen project/service-merkkijono.

Säilytä release-URL

Kirjaa tuotanto-URL deployment ID:n viereen.

Vahvista seuraava triggeri

Kirjaa, ovatko tulevat releaset manuaalisia vai käyttävätkö ne valinnaista deploy-on-push-toimintoa. Näin repositorion käyttöoikeudet, branch protection ja tuotantoa koskevat odotukset pysyvät linjassa ensimmäisen deploymentin jälkeen.

Aloita varmennettavasta deploymentista

Valitse pieni repositorio, jolla on selkeä start-komento ja health-reitti, ja dokumentoi tarkka target sekä rollback ID ensimmäisen onnistuneen releasen jälkeen.

Aloita ilmaiseksi osoitteessa app.dockup.ai. Free-plan maksaa 0 dollaria kuukaudessa, sisältää 10 dollarin aloitussaldon ja tukee yhtä workspacea, kolmea tietokantaa ja kolmea deploymentia.

FAQ

Voiko Dockup deployata repositorion ilman Dockerfilea?

Kyllä. Kun Dockerfilea ei ole, Dockup käyttää Nixpacksia sovelluksen automaattiseen tunnistamiseen ja buildaamiseen.

Mitä dockup create --link tekee?

Se kirjoittaa nykyiseen hakemistoon .dockup-linkin, jonka avulla myöhemmät komennot voivat ratkaista siihen liittyvän project/service-targetin.

Miksi ensimmäisessä deployssa pitäisi käyttää --wait-valitsinta?

Se pitää komennon liitettynä, kunnes deployment saavuttaa onnistumisen, virheen tai aikakatkaisun, ja palauttaa exit coden, joka kuvaa päätetulosta oikein.

Tulevatko ympäristömuuttujien muutokset voimaan heti?

Eivät. Ne tulevat voimaan seuraavassa deploymentissa uuteen containeriin, joten redeployaa service ympäristökonfiguraation muuttamisen jälkeen.

Miten Dockup palauttaa sovelluksen aiempaan versioon?

Listaa deployment-historia, tunnista tunnettu aiempi deployment ID ja käytä dockup rollbackia kyseisen ID:n ja tarkan service-targetin kanssa.