Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Deployment

In questa sezione verrà discusso il processo di Deployment delle varie componenti del sistema.

Docker

Al fine di rendere il deployment di tutte le parti del sistema il più semplice ed efficente possibile, si è utilizzato Docker. In particolare, si è deciso di separare la componente client da quella server mediante un apposito container Docker.

Un container è una lightweight Virtual Machine, che è in grado di contenere un’applicazione e il suo ambiente di esecuzione, vengono considerati lightweight, in quanto contengono solo lo stretto necessario per poter eseguire l’applicazione e utilizzano le risorse dell’host sul quale vengono istanziati, consentendoci di avere un ambiente di esecuzione isolato per ogni componente del sistema.

I diversi container sono in grado di comunicare tra loro tramite una rete costruita ad-hoc. Per semplicità la costruzione dei container e della rete è stata realizzata tramite la scrittura di un apposito file actions.yaml invocato automaticamente durante la fase di release.

docker:
      name: Docker
      runs-on: ubuntu-latest
      needs: sonarcloud
      steps:
      -
        name: Checkout
        uses: actions/checkout@v3
      -
        name: Set up QEMU
        uses: docker/setup-qemu-action@v2
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2
      -
        name: Login to Docker Hub
        uses: docker/login-action@v2
        with:
          username: $
          password: $
      -
        name: Build and push
        uses: docker/build-push-action@v4
        with:
          context: .
          push: true
          tags: leledallas/tracker-server:nomeServizio

Container consultabili:

Per il deployment in locale si può utilizzare il file Dockerfile presente in ciascun servizio definito come segue:

# Use an official Node runtime as a parent image
FROM node:18.5.0-alpine

# Set the working directory to /app
WORKDIR /app

# Copy the package.json and package-lock.json files to the container
COPY package*.json ./

# Install dependencies
RUN npm install --legacy-peer-deps

# Copy the rest of the application files to the container
COPY . .

# Expose port 5173 for the application to run on
EXPOSE 5173

# Start the application
CMD ["npm", "run", "dev"]

Per ‘dockerizzare’ un componente dell’applicazione bisognerà eseguire il seguente comando: docker build -t nome-servizio