Lokal udvikling

Lokalt Udviklingsmiljø

Denne guide viser, hvordan man sætter et lokalt udviklingsmiljø op for GC2.

Til det bruger vi VS Code’s Dev Containers udvidelse. Det giver mulighed for at udvikle inde i containeren.

Krav

Windows

MacOS

  • Docker Desktop 2.0+

  • VS Code - Download og installer [VS Code](https://code.visualstudio.com/)

  • VS Code Extensions Dev Containers created by Microsoft

Linux

  • Docker CE/EE 18.06+ and Docker Compose 1.21+. (Ubuntu Snap package er ikke supportet)

  • VS Code - Download og installer [VS Code](https://code.visualstudio.com/)

  • VS Code Extensions Dev Containers created by Microsoft

Git

Sørg for at git er sat rigtigt op ift. origin og upstream.

Origin

git remote add origin [URL_OF_YOUR_FORK]

Eksempel: git remote add origin https://github.com/JohnDoe/geocloud2.git

Upstream

git remote add upstream [URL_OF_MAPCENTIA_PROJECT]

Eksempel: git remote add upstream https://github.com/mapcentia/geocloud2.git

Tjek at du har de rigtige url’er git remote -v

Hent Tags Upstream

git fetch –tags upstream

Det er nu muligt at lave et image, der starter på en specifik version. Du kan evt. pushe tagsene til din egen fork.

git push –tags origin

GC2 Image

Du starter med at lave et GC2 image. Det gør du ved at gå til mappen docker/development/Dockerfile.

I Dockerfilen tilføjer du dit github brugernavn, så koden der clones kommer fra din fork.

Det gøres i følgende step:

RUN cd /var/www/ &&

git clone https://github.com/[ADD_GITHUB_USERNAME]/geocloud2.git –branch master

Hvis du lavet en remote branch til din feature/bug fix så fjern –tags og lav en chekout på den pågældende branch. Det gøres i følgende step:

cd /var/www/geocloud2 &&

git fetch –tags &&git checkout tags/2022.11.0

Ændres til:

cd /var/www/geocloud2 &&

git fetch &&git checkout docBugFix

Hvis du skal arbejde med en extension, så tilføj dit github brugernavn for den pågældende extension.

Derefter kører du scriptet buildGc2Image.sh dev

I docker-compose filen i samme mappe skal du være sikker, at tagget for det image du lige har bygget, er det samme som det tag i service: gc2core. Ændres f.eks. til gc2core:dev

Start Dev Containers

  • Klik på filen devcontainer.json i mappen .devcontainer.

  • Tryg F1 og skriv devcontainer og vælg Rebuild and reopen in container. Hvis devcontaineren har været bygget vælges Reopen in Container.

Når devcontaineren er bygget åbner VS Code et nyt vindue, hvor du ser koden inde i devcontaineren.

Start GC2 Vidi

I det VS Code vindue, der åbnede op åbner du en terminal og cd’er til development mappen cd docker/development.

Derefter skriver du docker-compose up for at starte GC2 Vidi.

Forbind Til gc2core Containeren

I nederste venstre hjørne klikker du på Dev Container: Docker in Docker og vælger Attach to container. Derefter vælger du development_gc2core_1 containeren.

Et nyt VS Code vindue åbner op, og du er nu inde i gc2core containeren.

Er det første gang du åbner containeren vil der, til venstre, være en blå knap, hvor der står »Open Folder«. Tryk på »Open Folder« knappen og vælg root mappen. Derefter skriver du:

cd ..

cd var/www/geocloud2

code . (for at åbne et nyt VS Code vindue)

I browseren går du til http://localhost:8080

Det ser ud til, at ændringer i koden gemmes i imaget, men hvis du vil være sikker på, ikke at miste din kode så sørg for at comitte og pushe, til din remote branch, ofte.