
Tehát nézzük, hogy mi a cél! Szeretnék egy olyan Docker konténert, amiben WireMock fut, és az abban található mock-olt szolgáltatások hívhatóak kívülről. Ehhez első körben egy Docker Desktop alkalmazásra van szükség, ami a Docker weboldalán keresztül tölthető el, de ha már itt járunk, akkor érdemes egy regisztrációt is csinálni, ami most még nem kerül igazán semmibe.
Miután a letöltés sikeres, ellenőrizzük, hogy az operációs rendszerünkön telepítve van a WSL (Windows Subsystem for Linux) – nekem most Windows 10 Pro van a gépemen – amit a Control Panel -> Programs and Features -> Turn Windows feature on or off menü pont alatt ellenőrizhetünk, vagy szükség esetén telepíthetünk. Ha ez rendben van, akkor jöhet egy szokásos telepítés a Docker Desktop csomaggal, és ha mindent jól csináltunk, akkor ez hiba nélkül felkerült a számítógépre és még úgy tűnik, hogy fut is.
Következő lépés, hogy szükség van egy docker-compose.yml fájlra, amit siman kézzel és mondjuk egy notepad++ segítségével könnyedén létrehozhatunk, majd pedig a következő adattal feltölthetünk:
version: '3.9'
services:
wiremock:
image: "holomekc/wiremock-gui:latest"
container_name: my_wiremock
ports:
- "8088:8089"
- "8084:8088"
volumes:
- D:/Docker/wiremock/mappings:/home/wiremock/mappings
- D:/Docker/wiremock/__files:/home/wiremock/__files
environment:
WIREMOCK_OPTIONS: "--port=8089,--https-port=8088,--max-request-journal=1000,--local-response-templating,--root-dir=/home/wiremock/"
Amire fontos, hogy odafigyeljünk ennél, az az, hogy a megadott portokon ne fusson más alkalmazás, mert akkor az hibát generálhat, illetve hogy megfelelően csatoljuk fel a meghajtókat a volumes alatt. Ahogy látható, nálam a Windows D meghajtóján vannak a könyvtárak (forrás), amelyek tartalmai a /home/wiremock/… könyvtárakban lesznek elérhetőek a konténerünkben. Itt hívnám fel a figyelmet arra is, amit a példa írása során én is elkövettem, hogy a –root-dir= résznél megadott struktúra legyen használva a volumes résznél (/home/wiremock).
Ha ideáig eljutottunk, akkor még hátra van egy json fájl létrehozása, ami tartalmazza a mock-olt hívásokat. Ehhez létre kell hozni egy json fájlt a Windowson a mappings könyvtárban, és mondjuk felhasználni az alábbi példát:
{
"mappings": [
{
"id": "679dd3ce-55e5-45ee-b270-01dcf1b371ca",
"request": {
"urlPattern": "^/hello",
"method": "GET"
},
"response": {
"status": 200,
"jsonBody": {
"status": "success",
"message": "Hello"
},
"headers": {
"Content-Type": "text/plain"
}
},
"uuid": "679dd3ce-55e5-45ee-b270-01dcf1b371ca"
},
{
"id": "679dd3ce-55e5-45ee-b270-01dcf1b371c2",
"request": {
"urlPattern": "^/hello-2",
"method": "GET"
},
"response": {
"status": 200,
"jsonBody": {
"status": "success",
"message": "Hello-2"
},
"headers": {
"Content-Type": "text/plain"
}
},
"uuid": "679dd3ce-55e5-45ee-b270-01dcf1b371c2"
}
]
}
Ezt követően nincs más dolgunk, mint nyitni egy command prompt-ot, elnavigálni abba a könyvtárba, ahol a docker-compose.yml fájl található, majd pedig kiadni a következő parancsot: docker compose up. Ha minden jó, elkezdi letölteni az image-t, majd létrehozza a konténert a felcsatolt meghajtókkal és végezetül elindítja azt. Sikeres indítás után nyissuk meg a következőt egy böngészőben: http://localhost:8088/__admin/webapp/mappings
Végezetül pedig teszteljük le, hogy megfelelően működik. Ehhez nyissuk meg a Postman-t és hívjuk meg a végpontot.
Amint látható, nálam megfelelően működik és bízom benne, hogy másoknál is fog. Azonban azt ne felejtsük el, hogy ez a belépő szint. Innen meg igen sokat kell tanulni, hogy komplexebb mock-olások, illetve konténerek készüljenek. Sok sikert és kitartást hozzá!
- A hozzászóláshoz regisztráció és bejelentkezés szükséges