Kuinka automatisoida Docker-konttien käyttöönotto Mavenin kautta

Tämä artikkeli on tarkoitettu ihmisille, jotka käyttävät Mavenia JAVA-sovellusten rakentamisen ja riippuvuuden hallinnan työkaluna. Se näyttää, kuinka integroida docker-säilön koontiversio, merkitä ja työntää työnkulut nykyiseen Maven-koontinhallinnan ekosysteemiin.

Mahdollisuus rakentaa, merkitä ja työntää sovellustasi säilönä heti Mavenin elinkaarikomennoista itsestään on melko siisti asia. Se vain tekee asioista helppoja ja nopeita, jos yrität tuoda konttien voiman sovellusten käyttöönottoon ja valmiina Mavenin avulla riippuvuuden hallintaan.

Jos katsomme olemassa olevia ratkaisuja docker-konttien käyttöönoton integroimiseksi Maveniin, siellä on useita, kuten spotify maven docker -laajennus, fabric8io docker maven -laajennus jne. Mutta kaikki nämä ratkaisut tuovat ei-toivottua monimutkaisuutta, lisää oppimiskäyrää ja liikaa vaihda nykyiseksi sovelluskoodiksi. Siellä on kuitenkin yksinkertaisempi ja helpompi tapa saavuttaa tämä ilman kolmannen osapuolen laajennuksen käyttöä.

Jos huomioit Mavenin Ant-laajennuksen, se antaa meille mahdollisuuden suorittaa ulkoisia komentoja. Joten Ant-laajennuksen avulla voimme suorittaa telakointiaseman rakentamisen, merkitsemisen, työntämisen tai minkä tahansa komennon haluamallasi tavalla. Ainoa asia, joka meidän on tehtävä, on toimittaa oikea Docker-tiedosto Docker-kuvan rakentamiseksi sovelluksellesi sekä tarvittavat komento- ja Maven-kokoonpanot pom.xml-tiedostoon.

Tässä prosessissa mukana olevien vaiheiden selittämiseen käytän esimerkki JAVA-sovellusta. Se sisältää kaikki seuraavissa vaiheissa käytetyt koodinäytteet. Voit kloonata sen täältä.

Vaihe 1 | Luo Docker-tiedosto

Dockerfile tulisi tallentaa polkuun src / main / docker / Dockerfile JAVA-sovelluksesi.
# Pull base imageFROM tomcat:8.0.30-jre7# MaintainerMAINTAINER "[email protected]"
# Set Environment propertiesENV JAVA_OPTS=-Denvironment=production# Copy war file to tomcat webapps folderCOPY /dockermavensample.war /usr/local/tomcat/webapps/

Vaihe 2 | Päivitä pom.xml kopioidaksesi kaikki Dockeriin liittyvät resurssit kohdehakemistoon

Voimme käyttää maven-resource-pluginia resurssien kopioimiseen.
 maven-resources-plugin   copy-resources validate  copy-resources   ${basedir}/target;   src/main/docker true     

Vaihe 3 | Päivitä pom.xml, jotta Docker-kuva voidaan rakentaa ja merkitä Mavenin Ant-laajennuksella


     
     
      org.apache.maven.plugins
      1.6
     
       prepare-package 
      
       package 
       
        false 
        
          ; 
         run 
       
      
     
    

Mavenin Ant-laajennus suorittaa telakointikomennon Mavenin elinkaaren pakettivaiheessa seuraavassa järjestyksessä, joka rakentaa telakointikuvan Docker-tiedostosta, joka kopioitiin kohdekansioon vaiheessa 2.

docker build -t dockermavensample:1.0.0 target

Vaihe 4 | Päivitä pom.xml-tiedosto, jotta Docker Image voidaan siirtää Docker-etätietovarastoon

Tuotantoa varten sinun on työnnettävä Docker-kuvat omaan yksityiseen Docker-rekisteriisi tai käytettävä kolmannen osapuolen Docker-kuvavarastoa, joka sallii yksityisten Docker-kuvien tallentamisen, jotta muut eivät voi vetää Docker-kuviasi suoraan.
 org.apache.maven.plugins; maven-antrun-plugin 1.6 ;  install false 
    
      
       run 
     
    

Yllä olevien vaiheiden lisäksi saatat haluta hallita, kuinka suoritat näitä telakointikomentoja Maven-elinkaaressasi. Tätä varten voit jakaa Mool-profiilit loogisesti laajennusten määritysten yläpuolelle. Suorita sitten ne vain, kun kyseiseen toimintoon liittyvää profiilia käytetään.

Tutustu seuraaviin esimerkkiprofiileihin:


    
      dockerBuild maven-resources-plugin 
     
       copy-resources validate; 
       
       
        copy-resources 
       
       
       
       
        ${basedir}/target 
        
          src/main/dockertrue  ; 
        
       
      
       org.apache.maven.plugins maven-antrun-plugin 1.6 
     
      prepare-package 
      
       package false 
        
         run 
       
      
     
    
 
    
      true; 
    

    
     
      dockerRelease
      org.apache.maven.plugins 
     
      maven-antrun-plugin 1.6 
      
       install 
       
        false
         run 
      
     
    

Suorita yllä olevat vaiheet, suorita vain

mvn clean install -P dockerBuild,dockerRelease

JAVA-sovelluksesi on nyt pakattu säilöksi ja työnnetty myös etätelakointivarastoon. Voit testata, toimiiko luomasi kuva suorittamalla seuraavat komennot:

Kuten näette, voimme käyttää jo saatavilla olevia Maven-ominaisuuksia ja laajennuksia luodaksemme hyvin jäsennellyn rakenneputken sovellusten käyttöönottamiseksi kontteina.

Näyte projekti:

rav94 / telakointiasema

Demoprojekti konttien käyttöönoton automatisoimiseksi Mavenin kautta - rav94 / dockermavensample github.com

Kiitos lukemisesta!