- Elméleti alapok: CI/CD
- Groovy és Gradle
- Build Java projekt esetén: Compile, Unit test, Package
- Tesztlefedettség
- Integrációs tesztek inmemory adatbázissal
- Release (?)
- Docker alapok
- Integrációs tesztek valós adatbázissal
- Csomagolás Docker image-be:
- Futtatás Docker image-ben
- Futtatás Docker image-ben adatbázis& network használatával
- Konténer futtatása Gradle-bpl
- Layerelt Docker image
- Build Docker image-ben
- E2E tesztelés
- E2E tesztelés Docker Compose használatával
- Jenkins bevezetése
- Pipeline
- Build number
- SonarQube
- Quality Gate és Quality Profile
- Tesztlefedettség eredménye
- Deploy artifact to Nexus
- Deploy Docker image t Nexus
- Pull and run Docker image from Nexus
Integrációs tesztek valós adatbázisok:
docker run -d -e MARIADB_DATABASE=employees -e MARIADB_USER=employees -e MARIADB_PASSWORD=employees -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=yes -p 3306:3306 --name employees-mariadb mariadb
docker logs -f employees-mariadb
Futtatás:
docker exec -it employees-mariadb mysql
Cloudban futtatható alkalmazások alapszabályai: The Twelve-Factor App
Kellett beállítani a springhez dolgokat (liquibase)
- set SPRING_DATASOURCE_URL=jdbc:mariadb://localhost/employees
- set SPRING_DATASOURCE_USER=employees
- set SPRING_DATASOURCE_PASSWORD=employees
ezek után megfelelően elindul a Spring app a java -jar target\employees-1.0-SNAPSHOT.jar paranccsal
Érdemes nem csak a konténtert, de még az alkalmazást is "layerekre bontani"
Dockerben minden egyes copy parancs új "layert" hoz létre
Dockerfile-on belül lehet meghatározni cache képet, ami a függőségeket letölti, és akkor a build nem minden újrafutásnál szenved vele
host.docker.internal
így lehet a saját gépre kilátni
##Alkalmazás és adatbázis együttes futtatása docker network create employees-net
docker run -d -e MARIADB_DATABASE=eemployees -e MARIADB_USER=employees -e MARIADB_PASSWORD=employees -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=yes -p 3307:3306 --name employees-app-mariadb --network employees-net mariadb
docker run -d -e SPRING_DATASOURCE_URL=jdbc:mariadb://employees-app-mariadb/employees -e SPRING_DATASOURCE_USERNAME=employees -e SPRING_DATASOURCE_PASSWORD=employees -p 8085:8080 --name employees-app --network employees-net employees
Docker compose: egy python script, ami képes a konténereket/konténeren belül futtatni, stb , ez benne van a docker desktop alkalmazásban: .yaml végződésűek
ezeket a docker compose-zal lehet elindítani
postmanoltunk
newman usage
hibafelmérő
ha átadod neki a becsomagoolt vagy ellenőrzött kódot, ad egy szép elemzést, részletbe menően
tokent generál, és vagy hozzáad a pomhoz, vagy build során a cmd vonalon kell megadni
Sonatype alatt készül.
docker run --name nexus --detach --publish 8091:8081 --publish 8092:8082 sonatype/nexus3
szép kis nexusos
the ONE devOps platform
git hosting platform, lehet központi, vagy lokál szerveren tenni