You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2019_assignment3_MiVan/doc/chapters/03_esecuzione.tex

70 lines
3.4 KiB

\section{Requisiti}
L'applicazione è stata sviluppata, eseguita e testata su sistemi \textit{UNIX Like}, in particolare sulla distribuzione \textit{GNU/Linux Debian}.\newline
Per questo questo motivo le istruzioni che seguono saranno incentrate su questo ambiente, ma dovrebbero valere per tutti gli altri sistemi.\newline
Per rendere la propria macchina pronta ad eseguire l'applicazione è necessario installare i pacchetti \code{openjdk} (la versione 8 è sufficiente) e \code{mvn} corrispondenti rispettivamente a \textit{Open Java Development Kit} ed al tool \textit{Apache Maven}; in caso di Debian o derivate si usa il seguente comando:
\newline
\begin{lstlisting}[style=BashInputStyle]
$ sudo apt-get install openjdk-8-jdk mvn
\end{lstlisting}
In caso si volesse usare \textit{Docker} allora le dipendenze sono \textit{docker-compose}, ed ovviamente \textit{docker} stesso. \textit{Compose} è presente nella maggior parte delle repo delle distro, il problema è che non è sempre aggiornato, per cui si ovvierà a questo possibile problema per mezzo di \code{pip}.
La serie di comandi è la seguente, in caso di distro diversa da Debian usare il relativo gestore di pacchetti in sostituzione ad apt:
\newline
\begin{lstlisting}[style=BashInputStyle]
$ sudo apt-get install docker-ce python3-pip
$ sudo pip3 install docker-compose
\end{lstlisting}
\section{Test}
Per eseguire i test è necessario spostarsi all'interno della cartella del sorgente dell'applicazione e poi lanciare il relativo comando:
\newline
\begin{lstlisting}[style=BashInputStyle]
$ cd mivan
$ ./mvnw clean verify
\end{lstlisting}
\section{Build}
L'operazione di build genera un file \code{.jar} all'interno della cartella di nome \code{target}, la quale se non è già presente \textit{verrà creata a runtime}.
Per eseguire la build è necessario spostarsi all'interno della cartella del sorgente dell'applicazione e poi lanciare il wrapper \code{mvnw}:
\newline
\begin{lstlisting}[style=BashInputStyle]
$ cd mivan
$ ./mvnw clean package spring-boot:repackage
\end{lstlisting}
\section{Avvio tramite linea di comando}
L'avvio immediato dell'applicazione, utile durante lo sviluppo si esegue con un solo comando. Si ricorda che prima è necessario spostarsi all'interno della cartella del sorgente dell'applicazione:
\newline
\begin{lstlisting}[style=BashInputStyle]
$ cd mivan
$ ./mvnw spring-boot:run
\end{lstlisting}
\section{Avvio tramite Docker}
Per poter eseguire l'applicazione per mezzo di Docker container è necessario soddisfare i requisiti indicati all'inizio di questo capitolo. Il vantaggio di usare Docker è che semplifica \textit{notevolmente} sia la fase di sviluppo che di \textit{deploy} dell'applicazione, specialmente per l'ultimo punto che ne riduce in maniera sensibile sia il tempo che la complessità.
\begin{leftbar}
\noindent\textbf{Nota:}\newline Per poter utilizzare docker è necessario avere i privilegi di root od essere nel gruppo \code{docker}!
\end{leftbar}
Un comodo strumento di cui faremo uso per gestire i container è \textit{Compose}, di cui, dato il file \code{.yml} già compilato alla radice della repository eseguiamo il comando di build:
\newline
\begin{lstlisting}[style=BashInputStyle]
$ sudo docker-compose build
\end{lstlisting}
E poi, una volta buildate l'immagine del container, lo lanciamo:
\newline
\begin{lstlisting}[style=BashInputStyle]
$ sudo docker-compose up
\end{lstlisting}