- Node 18 LTS
- Node 20 LTS
- Node 22 LTS
Nem Docker verzió: https://github.com/cloudsteak/trn-node-demo
A megoldás "Embedded JavaScript templating"-re épül. https://ejs.co
eslint tesztelés előkészítve. Ha CI pipeline-t telepítesz, akkor ellemőrzi a kódodban (példa alapján app.js) a pontosvesszők helyességét. A CD rész, csak akkor fut le, ha a CI (a teszt) sikeres.
Kézzel is futtatható a teszt:
npm run test
vagy
eslint ./app.js
- Personal Acces Token létrehozás: https://github.com/settings/tokens
- "Generate new token (classic)"
- Note: A token neve. Adj valami értelmezhető nevet. Pl.: AZPIPELINEPAT
- Expiration: Token lejárati ideje. Tesztelés esetén választhatod a "No expiration". Éles rendszer esetén adj lejárati időt!!!
- Az alábbi részeket válaszd ki a jelölönégyzeteknél
- "repo": mindegyiket alatta
- "admin:repo_hook": mindegyiket alatta
- "user": mindegyiket alatta
- "Generate token" gombra kattintéssal a token létrejön.
- A tokent másold biztonságos helyre! Nem visszafejthető.
- Menj át az Azure DevOps-ba, a saját organization és project alapján. Pl.: https://cloudsteak.visualstudio.com/MentorKlub/_settings/adminservices (Project Settings > Service connections)
- "Create service connection"
- "New Azure service connection" résznél válaszd a GitHub-ot
- "New GitHub service connection" résznél az alábbi módon töltsd ki
- "Personal Access Token Authentication"
- "Personal access token" mezőbe illeszd be a GitHub-on generált token értékét
- "Service connection name" mezőbe adj egy nevet. Pl.: GITADOCONN
- Jelöld be a "Grant access permission to all pipelines" jelölő négyzetet
- Kattints a "Verify and Save" gombra
- Menj a Pipeline részbe. Pl.: https://cloudsteak.visualstudio.com/MentorKlub/_build
- "Create Pipeline"
- GitHub (Yaml)
- Select lapon görgess a lapaljára és kattints az utolsó sorban a linkre: "You may also select a specific connection."
- Választd a "GITADOCONN"-t
- Keresd meg a GitHub repo-k között, amivel kapcsolódni szeretnél.
- Létező YAML esetén a Run gomb melletti nyilra kattins és válaszd a "Save" lehetőséget.
- Várd meg míg a pipeline létrejön. Ezzel a kapcsolt kész.
- Ha GitHub-on módosítasz a kódon, akkor a pipeline elindul és a benne lévő kód lefut.
Dockerfile: leírja az alkalmazás környezet kialakításának feltételeit és lépéseit. .dockerignore: tartalmazza azon fájlok, mappák és minták lerását, amit a docker image készítő figyelmen kívül hagy.
Helyi gépen hogyan tesztelhetem.
docker build --tag mentorklub.azurecr.io/trn-node-docker .
Megjegyzés:
- Ha az image fájlt Apple Silicon processzoros gépen készítem, de utána Intel processzoros gépen használom, akkor a fenti parancshoz adjuk hozzá ezt:
--platform linux/amd64
- Több platformos build:
docker buildx build --tag mentorklub.azurecr.io/trn-node-docker --push . --platform linux/amd64,linux/arm64,linux/arm/v7
docker run -d -p 80:3000 --name nodedemo mentorklub.azurecr.io/trn-node-docker:latest
- Azure Container Registry létrehozás
Megjegyzés: Az ACR-nek Azure szinten egyedinek kell lennie. A lenti példában használt mentorklub
ARC már létezik, így használj másikat, ha ezt is szeretnld kipróbálni.
# Erőforráscsoport létrehozás - ha szükséges
az group create --name mentorklub --location swedencentral
# ACR létrehozás
az acr create --resource-group mentorklub --name mentorklub --sku Basic
# Admin engedlyezése
az acr update -n mentorklub --admin-enabled true
-
Pipeline építés Azure DevOps-ban
-
Pipeline azure-pipelines.yml fájl módosítás
Hogy csak a Push esetén fusson le. Illesszük be a condition: eq(variables['Build.reason'], 'IndividualCI')
sort.
stages:
- stage: Build
displayName: Build and push stage
condition: eq(variables['Build.reason'], 'IndividualCI')
jobs:
A tag-ekhez tegyük be a latest
értéket is.
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
latest
-
Webalkalmazás létrehozása (Docker)
-
Webalkalmazás módosítása
- Üzembehelyezési központban állítsuk át a
Folyamatos telepítés
értékésBekalcsolva
-ra. - Konfiguráció > Általános beállítások > Mindig bekapcsolva: Be
- Üzembehelyezési központban állítsuk át a
AKS-en való futtatáshoz itt találsz leírást: aks/readme.md
- Admin Account engedélyezése az ACR-ben
Ha frissen hoztunk létre egy Azure Container Registry-t, akkor az alapértelmezett beállítások miatt nem tudunk hozzáférni az ACR-hez.
Amikor megpróbálunk mégis hozzáférni webalkalmazásból, akkor a következő hibát kapjuk:
Hiba megoldása, hogy engedélyezzük az Admin Account-ot az ACR-ben.
- Jelentkezzünk be az ACR-be:
az acr login --name mentorklub
- Engedélyezzük az Admin Account-ot:
az acr update -n mentorklub --admin-enabled true