Jatkuvan käyttöönoton asettaminen kotiprojektiin helposti

Jatkuva käyttöönotto on kaunis asia. Projektin sitoutuminen ja sen rakentamisen ja käyttöönoton näkeminen tekemättä mitään on lumoavaa.

Ja tässä artikkelissa haluan näyttää sinulle, miten se tehdään helposti kotiprojektissasi.

Tämän selvittämiseksi tässä on vuokaavio, joka näyttää erot jatkuvan toimituksen ja jatkuvan käyttöönoton välillä.

Koska suurin osa ajasta kukaan muu kuin sinä ei ole riippuvainen kotiprojektistasi, jatkamme jatkuvan käyttöönoton työnkulkua, koska haluat, että muutokset otetaan käyttöön heti. Jos näin ei ole, voit muuttaa työnkulkua myöhemmin.

Opit seuraavista:

  • Kuinka tehdä Docker-tiedosto
  • Kuinka viedä projektisi GitHubiin
  • Docker-kuvan rakentaminen Docker Hub -sovellukseen automaattisesti
  • Kuvan lataaminen ja suorittaminen automaattisesti Vartiotornilla

Edellytykset:

  • Jotkut tiedot Dockerista ja Docker-tiedostosta, vaikka selitän osan niistä matkan varrella
  • Onko git asennettu
  • Docker Hub -tili
  • (Linux) -palvelin (joko fyysinen tai virtuaalinen), joka käyttää Dockeria

Viitteeksi tämä on esimerkki GitHub-arkistosta, ja tämä on käytettävä esimerkki telakointikeskuksen arkistosta.

Siksi tämä opetusohjelma on hyödyllinen vain, jos aiot käyttää ohjelmistoa Dockerilla (jota suosittelen, koska Docker on fantastinen).

Miksi käyttää Dockeria?

Dockerin avulla sinulla on sama kehitys- ja tuotantoympäristö, joka eliminoi Heisenbugit ja "se toimii koneellani" -ongelman. Myös kontit ovat eristettyjä, mikä antaa meille turvallisuusetuja.

Siinä on enemmän, mutta nämä kaksi etua saavat minut toimittamaan ohjelmistoni aina Docker-kontteihin.

Docker-tiedoston asettaminen

Ensin tehdään Docker-tiedosto projektille. Tätä erityistiedostoa kutsutaan aina “Dockerfile” ilman laajennusta ja se sijaitsee projektisi yläosassa.

FROMDocker- tiedosto alkaa lausekkeella, joka kertoo Dockerille, mistä peruskuvasta haluat aloittaa. Voit kuvitella tämän käyttävän kangasta, jonka tausta on jo piirretty ja vain keskiosa (ohjelmasi) puuttuu.

Suurimman osan ajasta kuva, jonka haluat vetää, on ohjelmointikielesi peruskuva, jonka löydät yllä mainitusta Docker Hubista.

Seuraavaksi kopioimme projektitiedostot telakointisäiliöön COPY..komennolla. Mitä tämä tekee?

Se vie tiedostot ensimmäisestä hakemistosta (piste viittaa tiedoston nykyiseen hakemistoon, joka sisältää kaikki projektitiedostosi) ja laittaa sen Docker-säilön nykyiseen hakemistoon (muista, että telakointisäiliösi on oma käyttöjärjestelmä). Tiedostosi ovat nyt siellä olevassa perushakemistossa, jota haluat ehkä muuttaa.

Seuraavaksi meidän on asennettava riippuvuudet, joita käytän python pip, mutta mikä tahansa vastaava paketinhallintajärjestelmä valitsemastasi kielestä riippuen. Kriittinen asia, joka on opittava tässä, on komentojen suorittaminen säilössä RUN-toiminnolla.

From python:3.7COPY . .RUN pip install -r requirements.txt

Helppo, eikö olekin? Nyt meidän on aloitettava ohjelmamme kontissa.

CMD ["python", "./my_script.py"]

CMD-käsky on ainutlaatuinen. Jokaisella Docker-tiedostolla on oltava viimeinen rivi, koska se aloittaa ensisijaisen prosessin säiliössä.

Olet lopettanut Docker-tiedostosi! Voit nyt rakentaa kuvan ja säilön manuaalisesti, mutta jätämme sen toistaiseksi väliin.

Luomme nyt tietovarastomme GitHubiin, mutta muista jättää "Initialize this repository with a README" -valintamerkki.

Sitten sinun on kopioitava etä-URL.

Avaa cmd / shell projektin juurihakemistossa.

Sinun on alustettava git-arkistosi, lisättävä tiedostosi, määritettävä kaukosäädin, sitoutettava tiedostot ja työnnettävä projekti GitHubiin.

git initgit add *git remote add origin //github.com//.gitgit commit -a -m "Make Dockerfile ready for CD"git push -u origin master

Nyt GitHub-tietovarastosi pitäisi näyttää tältä:

Onnittelut, olet noin puolivälissä!

Seuraava vaihe on yhdistää GitHub Docker Hubiin. Tätä varten siirryt tilin asetuksiin.

Vieritä alaspäin ja yhdistä git-isäntäsi.

Luo arkisto docker hubiin nyt.

Anna repolle nimi ja napsauta GitHub-kuvaketta (tai Bitbucket, jos se on sinun juttusi). Valitse nyt organisaatiosi (yleensä käyttäjänimesi) ja projektisi nimi. Jos haluat käyttää pääkuvaa koontiversiossa ja ajaa aina viimeisimpään, voit nyt napsauttaa "Luo ja koota" ja katsoa, ​​kuinka kuvasi rakennetaan sinulle. Muussa tapauksessa sinun on muokattava koontiasetuksia.

Viimeiset vaiheet! Nyt tarvitset Vartiotornin kohdekoneellesi.

Vartiotorni on ohjelma, joka vetää käynnissä olevat telakointikuvat ja tarkistaa päivitykset. Jos päivityksiä on, se sulkee sulavasti alkuperäisen säilön ja luo uudesta kuvasta säilön, jolla on samat asetukset.

Parasta on, että voimme myös asentaa Vartiotornin Dockerin kanssa!

Syötä seuraavat tiedot päätelaitteeseesi:

docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower

Sitten sinun on suoritettava Docker-kontti projektillesi!

docker run -d --name  /

"-D" -vaihtoehto saa ohjelman ajamaan taustalla, joten ohjelma ei sammu, jos suljet päätelaitteen.

Joten yhteenvetona voidaan todeta, että jos painat sitoutumista GitHub-arkistoon, Docker-keskus rakentaa automaattisesti Docker-kuvan sinulle. Tämän jälkeen WatchTower vetää tämän kuvan ja sitä käytetään kaikissa alkuperäisissä vaihtoehdoissa.

Jos tarvitset apua missään vaiheessa, älä pelkää kysyä, autan mielelläni.

Jos kyseessä on tekninen ongelma, GitHub-projektin ongelma olisi mahtava!

Mutta entä testit?

Hyvä kysymys!

Voit käyttää Travis CI: tä testien suorittamiseen samanaikaisesti.

Voit lukea tästä täältä, mutta sen ydin on, että lisäät arkistoon toisen tiedoston, jossa on ohjeet ulkoiselle palvelimelle yksikötestien suorittamiseksi tai muita ohjeita.

Mutta entä jos haluan telakointikuvani rakentaa vain, jos testit läpäisevät?

Tämä rikkoo työnkulkumme hieman.

Emme voi nyt luottaa docker-keskittimeen kuviemme rakentamiseen. Sen sijaan se on myös Travis CI, joka tuottaa kuvan ja työntää sen sitten Docker Hub -tietovarastoon. Lue tästä täältä.