Hyppää sisältöön
    • Suomeksi
    • In English
Trepo
  • Suomeksi
  • In English
  • Kirjaudu
Näytä viite 
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
JavaScript is disabled for your browser. Some features of this site may not work without it.

Automating Docker Registry Version Control Using Jenkins : Automating registry updates in a CI/CD environment

Kansanen, Ilmari (2024)

 
Avaa tiedosto
KansanenIlmari.pdf (1.096Mt)
Lataukset: 



Kansanen, Ilmari
2024

Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2024-12-10
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-2024121010932
Tiivistelmä
This thesis presents an automated solution for managing Docker registry version control within embedded systems and software Continuous Integration and Continuous Delivery (CI/CD) environments using Jenkins. As agile methodologies drive demand for more efficient workflows, automated registry management is essential for maintaining consistency, traceability, and reliability. The project aimed to develop a Jenkins-based pipeline that automates the tagging, building, and pushing of Docker images, ensuring that each image version is precisely associated to specific Git commits.

The thesis is divided into three parts. Chapter 2 provides an overview of virtualization and Docker to establish a foundational understanding of the system being automated. Chapter 3 discusses CI/CD practices from the perspective of embedded systems testing with Jenkins, although the solution is also applicable to software development. Finally, Chapter 4 presents the implementation of the automated Docker registry version control solution, including the creation of a Jenkins pipeline and its integration into the testing pipeline, triggered automatically upon demand.

The primary goal is to reduce manual work by developers and therefore also avoid human error from the process, ultimately allowing developers to focus on higher-value tasks, not needing to worry about updating the registry. This automated system checks for Dockerfile updates upon running the test pipeline, builds and tags new images, and pushes them to the Docker registry on demand, making the latest versions readily accessible across development branches. Additionally, the thesis explores potential future improvements for the implementation, such as a user interface for better registry management and ease of use, but also an automated cleanup function to prevent the registry from being cluttered by old unused images.

Results indicate that the automated solution enhances overall efficiency, consistency, and developer productivity, providing a scalable solution for teams working in collaborative, branched environments. By aligning with current CI/CD best practices, this approach supports faster, errorfree development cycles while reducing human intervention, giving monetary and usability benefits.
 
Tämä opinnäytetyö käsittelee ja rakentaa automatisoidun ratkaisun Docker-rekisterin versiohallintaan sulautettujen järjestelmien ja ohjelmistojen jatkuvan integraation ja jatkuvan toimituksen (CI/CD) ympäristössä käyttäen Jenkins-työkalua. Ketterien (engl. Agile) menetelmien yleistyessä tehokkaammat työnkulut ovat yhä kysytympiä, ja automaattinen rekisterinhallinta on tärkeä ratkaisu jäljitettävyyden ja vakauden ylläpitämiseksi. Projektin tavoitteena oli kehittää Jenkinspohjainen ratkaisu, joka automatisoi Docker-kuvien version nimityksen, rakentamisen ja rekisteriin siirtämisen varmistaen, että jokainen kuvaversio on tarkasti sidottu vastaavaan Git-versioon.

Opinnäytetyö on jaettu kolmeen osaan. Luvussa 2 esitellään virtualisoinnin ja Dockerin perusteet, millä annetaan perusta ymmärtää automatisoitavaa järjestelmää. Luku 3 käsittelee CI/CDkäytäntöjä sulautettujen järjestelmien testauksen näkökulmasta Jenkinsin avulla, vaikkakin ratkaisu soveltuu myös ohjelmistokehitykseen. Lopuksi luvussa 4 esitellään automatisoidun Dockerrekisterin versiohallintaratkaisun toteutus, mukaan lukien Jenkins-prosessin luominen ja sen integrointi päätestiprosessiin, josta päivitys käynnistyy automaattisesti tarpeen mukaan.

Ratkaisun ensisijaisena tavoitteena on vähentää kehittäjien manuaalista työtä ja täten myös poistaa inhimillisten virheiden mahdollisuus, jolloin kehittäjät voivat keskittyä tärkeämpiin tehtäviin ilman huolta rekisterin päivittämisestä. Tämä automaattinen järjestelmä tarkistaa Docker-tiedoston päivitykset päätestiprosessin käynnistyessä, prosessi rakentaa ja nimeää uudet Docker kuvat sekä siirtää ne Docker-rekisteriin päivityksen tarpeen mukaan, jolloin uusimmat versiot ovat helposti saatavilla jokaiselle kehityshaaralle välittömästi. Lisäksi opinnäytetyössä tutkitaan toteutuksen tulevia parannusmahdollisuuksia, kuten käyttöliittymän kehittämistä rekisterin hallinnan helpottamiseksi sekä automaattista puhdistustoimintoa vanhojen käyttämättömien kuvien poistamiseksi rekisteristä.

Tulokset osoittavat, että automatisoitu ratkaisu parantaa tehokkuutta, johdonmukaisuutta ja kehittäjien tuottavuutta tarjoten tehokkaan ja skaalautuvan ratkaisun tiimeille. Nykyisiä CI/CDkäytäntöjä noudattamalla tämä lähestymistapa tukee nopeampia ja virheettömiä kehityssyklejä, vähentäen ihmistyötä, tuoden taloudellisia sekä käytännön hyötyjä.
 
Kokoelmat
  • Kandidaatintutkielmat [10837]
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste
 

 

Selaa kokoelmaa

TekijätNimekkeetTiedekunta (2019 -)Tiedekunta (- 2018)Tutkinto-ohjelmat ja opintosuunnatAvainsanatJulkaisuajatKokoelmat

Omat tiedot

Kirjaudu sisäänRekisteröidy
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste