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

72 lines
3.4 KiB

\section{Requisiti}
5 years ago
L'applicazione è stata sviluppata, eseguita e testata su sistemi \textit{UNIX Like}, in particolare sulla distribuzione \textit{GNU/Linux Debian}.
Per questo questo motivo le istruzioni che seguono saranno incentrate su questo ambiente, ma dovrebbero valere per tutti gli altri sistemi.
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} \cite{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}
5 years ago
In caso si volesse usare \textit{Docker} allora le dipendenze sono \textit{docker-compose}\cite{docker}, 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}. \cite{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}