I can't believe I have a (semi) finished version
This commit is contained in:
parent
7588b58453
commit
433b235929
@ -1,125 +1,125 @@
|
||||
@misc{kubernetes,
|
||||
title = {A Kubernetes hivatalos oldala},
|
||||
url = {https://kubernetes.io},
|
||||
title = {What is Kubernetes?},
|
||||
url = {https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/},
|
||||
note = {Megtekintve: 2020.11.28},
|
||||
}
|
||||
|
||||
@misc{kubernetes-dashboard,
|
||||
title = {A Kubernetes Dashboard hivatalos oldala},
|
||||
title = {Kubernetes Web UI (Dashboard)},
|
||||
url = {https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/},
|
||||
note = {Megtekintve: 2020.11.28},
|
||||
}
|
||||
|
||||
@misc{docker,
|
||||
title = {A Docker hivatalos oldala},
|
||||
url = {https://www.docker.com},
|
||||
title = {Docker overview},
|
||||
url = {https://docs.docker.com/get-started/overview/},
|
||||
note = {Megtekintve: 2020.11.28},
|
||||
}
|
||||
|
||||
@misc{grafana,
|
||||
title = {A Grafana hivatalos oldala},
|
||||
url = {https://grafana.com/},
|
||||
title = {What is Grafana?},
|
||||
url = {https://grafana.com/docs/grafana/latest/getting-started/},
|
||||
note = {Megtekintve: 2020.11.29},
|
||||
}
|
||||
|
||||
@misc{kibana,
|
||||
title = {A Kibana hivatalos oldala},
|
||||
url = {https://www.elastic.co/kibana},
|
||||
title = {What is Kibana?},
|
||||
url = {https://www.elastic.co/what-is/kibana},
|
||||
note = {Megtekintve: 2020.11.29},
|
||||
}
|
||||
|
||||
@misc{git,
|
||||
title = {A Git hivatalos oldala},
|
||||
url = {https://git-scm.com/},
|
||||
title = {A Git hivatalos oldalának About szekciója},
|
||||
url = {https://git-scm.com/about/branching-and-merging},
|
||||
note = {Megtekintve: 2020.11.30},
|
||||
}
|
||||
|
||||
@misc{trello,
|
||||
title = {A Trello hivatalos oldala},
|
||||
url = {https://trello.com},
|
||||
title = {What is Trello?},
|
||||
url = {https://trello.com/en/about},
|
||||
note = {Megtekintve: 2020.11.30},
|
||||
}
|
||||
|
||||
@misc{vs,
|
||||
title = {A Microsoft Visual Studio hivatalos oldala},
|
||||
url = {https://visualstudio.microsoft.com/},
|
||||
title = {Welcome to the Visual Studio IDE},
|
||||
url = {https://docs.microsoft.com/en-us/visualstudio/get-started/visual-studio-ide?view=vs-2019},
|
||||
note = {Megtekintve: 2020.11.30},
|
||||
}
|
||||
|
||||
@misc{vs-code,
|
||||
title = {A Microsoft Visual Studio Code hivatalos oldala},
|
||||
url = {https://code.visualstudio.com/},
|
||||
title = {User Interface},
|
||||
url = {https://code.visualstudio.com/docs/getstarted/userinterface},
|
||||
note = {Megtekintve: 2020.11.30},
|
||||
}
|
||||
|
||||
@misc{nlog,
|
||||
title = {Az NLog hivatalos oldala},
|
||||
title = {Welcome to NLog!},
|
||||
url = {https://nlog-project.org/},
|
||||
note = {Megtekintve: 2020.11.30},
|
||||
}
|
||||
|
||||
@misc{jwt,
|
||||
title = {Az JSON Web Token hivatalos oldala},
|
||||
title = {Introduction to JSON Web Tokens},
|
||||
url = {https://jwt.io/introduction/},
|
||||
note = {Megtekintve: 2020.12.02},
|
||||
}
|
||||
|
||||
@misc{automapper,
|
||||
title = {Az AutoMapper hivatalos oldala},
|
||||
title = {What is AutoMapper?},
|
||||
url = {https://automapper.org/},
|
||||
note = {Megtekintve: 2020.11.30},
|
||||
}
|
||||
|
||||
@misc{react,
|
||||
title = {A React.js hivatalos oldala},
|
||||
url = {https://reactjs.org/},
|
||||
title = {Getting Started with React.js},
|
||||
url = {https://reactjs.org/docs/getting-started.html},
|
||||
note = {Megtekintve: 2020.11.31},
|
||||
}
|
||||
|
||||
@misc{react-context,
|
||||
title = {A React Context dokumentációja},
|
||||
url = {https://reactjs.org/docs/context.html},
|
||||
title = {When to Use Context},
|
||||
url = {https://reactjs.org/docs/context.html#when-to-use-context},
|
||||
note = {Megtekintve: 2020.11.31},
|
||||
}
|
||||
|
||||
@misc{material,
|
||||
title = {A Material hivatalos oldala},
|
||||
url = {https://material.io/},
|
||||
title = {Design Guidelines},
|
||||
url = {https://material.io/resources/get-started#design},
|
||||
note = {Megtekintve: 2020.11.31},
|
||||
}
|
||||
|
||||
@misc{material-ui,
|
||||
title = {A Material UI hivatalos oldala},
|
||||
url = {https://material-ui.com/},
|
||||
title = {Quick start},
|
||||
url = {https://material-ui.com/getting-started/usage/#quick-start},
|
||||
note = {Megtekintve: 2020.11.31},
|
||||
}
|
||||
|
||||
@misc{apexcharts,
|
||||
title = {Az Apexcharts hivatalos oldala},
|
||||
title = {What is ApexCharts?},
|
||||
url = {https://apexcharts.com/},
|
||||
note = {Megtekintve: 2020.11.31},
|
||||
}
|
||||
|
||||
@misc{google-map-react,
|
||||
title = {A Google Map React hivatalos oldala},
|
||||
title = {Google Map React},
|
||||
url = {https://www.npmjs.com/package/google-map-react},
|
||||
note = {Megtekintve: 2020.11.31},
|
||||
}
|
||||
|
||||
@misc{nswag,
|
||||
title = {Az NSwag github oldala},
|
||||
url = {https://github.com/RicoSuter/NSwag},
|
||||
title = {NSwag: The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript},
|
||||
url = {https://github.com/RicoSuter/NSwag#nswag-the-swaggeropenapi-toolchain-for-net-aspnet-core-and-typescript},
|
||||
note = {Megtekintve: 2020.12.01},
|
||||
}
|
||||
|
||||
@misc{nswag-studio,
|
||||
title = {Az NSwag Studio github oldala},
|
||||
title = {NSwagStudio},
|
||||
url = {https://github.com/RicoSuter/NSwag/wiki/NSwagStudio},
|
||||
note = {Megtekintve: 2020.12.01},
|
||||
}
|
||||
|
||||
@misc{swagger-ui,
|
||||
title = {A Swagger UI hivatalos oldala},
|
||||
title = {Swagger UI},
|
||||
url = {https://swagger.io/tools/swagger-ui/},
|
||||
note = {Megtekintve: 2020.12.01},
|
||||
}
|
||||
@ -142,9 +142,15 @@
|
||||
note = {Megtekintve: 2020.12.04},
|
||||
}
|
||||
|
||||
@misc{mqttnet-github,
|
||||
title = {MQTTnet},
|
||||
url = {https://github.com/chkr1011/MQTTnet#mqttnet},
|
||||
note = {Megtekintve: 2020.12.04},
|
||||
}
|
||||
|
||||
@misc{mqttnet-winforms,
|
||||
title = {Az MQTT.NET tesztelő alkalmazásának github oldala},
|
||||
url = {https://github.com/SeppPenner/MQTTnet.TestApp.WinForm},
|
||||
title = {MQTTnet.TestApp.WinForm},
|
||||
url = {https://github.com/SeppPenner/MQTTnet.TestApp.WinForm#mqttnettestappwinform},
|
||||
note = {Megtekintve: 2020.12.07},
|
||||
}
|
||||
|
||||
@ -154,6 +160,19 @@
|
||||
note = {Megtekintve: 2020.12.07},
|
||||
}
|
||||
|
||||
@misc{dockerfile,
|
||||
title = {Dockerfile reference},
|
||||
url = {https://docs.docker.com/engine/reference/builder/},
|
||||
note = {Megtekintve: 2020.12.08},
|
||||
}
|
||||
|
||||
@misc{docker-compose,
|
||||
title = {Overview of Docker Compose},
|
||||
url = {https://docs.docker.com/compose/},
|
||||
note = {Megtekintve: 2020.12.08},
|
||||
}
|
||||
|
||||
|
||||
@thesis{birdnetes-tdk,
|
||||
author = {Torma Kristóf és Pünkösdi Marcell},
|
||||
institution = {Budapesti Műszaki és Gazdaságtudományi Egyetem},
|
||||
|
@ -10,23 +10,78 @@
|
||||
%\numberwithin{tabular}{section}
|
||||
|
||||
%----------------------------------------------------------------------------
|
||||
\section{A TeXstudio felülete}
|
||||
\section{A Docker image készítéséhez használt fájlok}
|
||||
%----------------------------------------------------------------------------
|
||||
\begin{figure}[!ht]
|
||||
\centering
|
||||
\includegraphics[width=150mm, keepaspectratio]{figures/TeXstudio.png}
|
||||
\caption{A TeXstudio \LaTeX-szerkesztő.}
|
||||
\end{figure}
|
||||
\begin{lstlisting}[style=dockerfile, caption=A Dockerfile tartalma, label=lst:dockerfile]
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
|
||||
WORKDIR /app
|
||||
RUN apt-get update && apt-get install -y curl
|
||||
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
|
||||
RUN apt-get update && apt-get install -y nodejs
|
||||
|
||||
%----------------------------------------------------------------------------
|
||||
\clearpage\section{Válasz az ,,Élet, a világmindenség, meg minden'' kérdésére}
|
||||
%----------------------------------------------------------------------------
|
||||
A Pitagorasz-tételből levezetve
|
||||
\begin{align}
|
||||
c^2=a^2+b^2=42.
|
||||
\end{align}
|
||||
A Faraday-indukciós törvényből levezetve
|
||||
\begin{align}
|
||||
\rot E=-\frac{dB}{dt}\hspace{1cm}\longrightarrow \hspace{1cm}
|
||||
U_i=\oint\limits_\mathbf{L}{\mathbf{E}\mathbf{dl}}=-\frac{d}{dt}\int\limits_A{\mathbf{B}\mathbf{da}}=42.
|
||||
\end{align}
|
||||
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
|
||||
RUN apt-get update && apt-get install -y curl
|
||||
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
|
||||
RUN apt-get update && apt-get install -y nodejs
|
||||
WORKDIR /src
|
||||
COPY ["Birdmap.API/Birdmap.API.csproj", "Birdmap.API/"]
|
||||
COPY ["Birdmap.BLL/Birdmap.BLL.csproj", "Birdmap.BLL/"]
|
||||
COPY ["Birdmap.Common/Birdmap.Common.csproj", "Birdmap.Common/"]
|
||||
COPY ["Birdmap.DAL/Birdmap.DAL.csproj", "Birdmap.DAL/"]
|
||||
RUN dotnet restore "Birdmap.API/Birdmap.API.csproj"
|
||||
COPY . .
|
||||
WORKDIR "/src/Birdmap.API"
|
||||
RUN dotnet build "Birdmap.API.csproj" -c Release -o /app/build
|
||||
|
||||
FROM build AS publish
|
||||
RUN dotnet publish "Birdmap.API.csproj" -c Release -o /app/publish
|
||||
|
||||
FROM base AS final
|
||||
WORKDIR /app
|
||||
COPY --from=publish /app/publish .
|
||||
ENTRYPOINT ["dotnet", "Birdmap.API.dll"]
|
||||
\end{lstlisting}
|
||||
|
||||
\begin{lstlisting}[style=docker-compose, caption=A docker-compose.yml fájl tartalma, label=lst:docker-compose]
|
||||
version: '3.4'
|
||||
|
||||
services:
|
||||
db:
|
||||
image: "mcr.microsoft.com/mssql/server:2019-latest"
|
||||
environment:
|
||||
- ACCEPT_EULA=Y
|
||||
- SA_PASSWORD=RPSsql12345
|
||||
|
||||
birdmap.api:
|
||||
image: ${DOCKER_REGISTRY-}birdmapapi
|
||||
ports:
|
||||
- "8000:80"
|
||||
- "8001:443"
|
||||
volumes:
|
||||
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
|
||||
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Birdmap.API/Dockerfile
|
||||
depends_on:
|
||||
- db
|
||||
environment:
|
||||
...
|
||||
- Birdmap_LocalDbConnectionString=Data Source=db;Initial Catalog=birdmap;User=sa;Password=RPSsql12345
|
||||
- Birdmap_Defaults__Users__0__Name=admin
|
||||
- Birdmap_Defaults__Users__0__Password=pass
|
||||
- Birdmap_Defaults__Users__0__Role=Admin
|
||||
- Birdmap_Defaults__Users__1__Name=user
|
||||
- Birdmap_Defaults__Users__1__Password=pass
|
||||
- Birdmap_Defaults__Users__1__Role=User
|
||||
- Birdmap_Defaults__Services__Local-Database=https://localhost:8001/health
|
||||
- Birdmap_Defaults__Services__KMLabz-Service=https://birb.k8s.kmlabz.com/devices
|
||||
- Birdmap_UseDummyServices=true
|
||||
- Birdmap_ServicesBaseUrl=https://birb.k8s.kmlabz.com/
|
||||
- Birdmap_Mqtt__BrokerHostSettings__Host=localhost
|
||||
- Birdmap_Mqtt__BrokerHostSettings__Port=1883
|
||||
- Birdmap_Mqtt__ClientSettings__Id=ASP.NET Core client
|
||||
- Birdmap_Mqtt__ClientSettings__Username=username
|
||||
- Birdmap_Mqtt__ClientSettings__Password=password
|
||||
- Birdmap_Mqtt__ClientSettings__Topic=devices/output
|
||||
\end{lstlisting}
|
@ -1,4 +1,23 @@
|
||||
%----------------------------------------------------------------------------
|
||||
\chapter{Kubernetes}
|
||||
\chapter{Docker image készítés}
|
||||
\label{chapt:birdnetes-kubernetes}
|
||||
%----------------------------------------------------------------------------
|
||||
%----------------------------------------------------------------------------
|
||||
Az éles rendszerrel való kommunikáció megvalósításához készítenem kell egy Docker image-et, melyet telepíteni lehet a Birbnetes Kubernetes klaszterébe.
|
||||
Ehhez először készítettem egy Dockerfile-t \cite{dockerfile}, mely az image-ek automatikus elkészítését teszi lehetővé.
|
||||
Utasításokat lehet benne felsorolni, melyekkel a konténer környezetét kell felépíteni.
|
||||
Meg lehet adni kiindulópontokat, mely az image alapjául szolgál.
|
||||
Erre a célra én az ASP.NET futtatokörnyeztét használtam, mely tartalmazza az alkalmazás futtatásához szükséges parancsokat.
|
||||
Ezek után a Dockerfile utasításait használva bemásolom a \verb+Release+ konfigurációval fordított alkalmazásomat a konténer egy mappájába,
|
||||
majd a belépési pont utasítással megadom az alkalmazás indításához szükséges parancsot.
|
||||
Ezt futtatva sikeresen elkészül a Docker image.
|
||||
|
||||
Azonban az alkalmazás teljes értékű működéséhez annak szüksége van egy adatbázis konténerre is.
|
||||
Az ilyen jellegű többkonténeres rendszer problémákra nyújt megoldást a Docker Compose \cite{docker-compose}.
|
||||
Egy YAML fájlban meg lehet adni az alkalmazás futtatásához szükséges szolgáltatásokat, illetve hogy ezek között milyen függőségi viszony van.
|
||||
Ennek használatával először készítek egy adatbázis konténert, mely inicializálása után indul csak el az alkalmazásom docker image-ének készítése.
|
||||
A két konténer közötti kommunikációhoz az alkalmazásomnak szüksége van még a kapcsolati karakterláncra, mely meghatározza az adatbázis elérésének paramétereit.
|
||||
A lokális futtatásnál ez az alkalmazás konfigurációs fájljában található, azonban ez a fájl már a konténer fájlrendszerében van, nehézkes hozzáférni.
|
||||
Szerencsére az ASP.NET támogatja a konfigurációk felülírását környezeti változókkal.
|
||||
Ehhez fel kell sorolnom a YAML fájl környezeti változói részében a felülírni kívánt konfigurációkat és értékeiket.
|
||||
Szintén ebben a fájlban megadtam az alkalmazás eléréséhez használni kívánt portokat.
|
||||
Ezek után az alkalmazásom készen áll a klaszterbe való telepítésre.
|
@ -89,7 +89,7 @@ A szerver valós időben tud értesítéseket küldeni a kliensek számára, ame
|
||||
%----------------------------------------------------------------------------
|
||||
\subsection{MQTT.NET}
|
||||
%----------------------------------------------------------------------------
|
||||
Az MQTT.NET is egy .NET szoftvercsomag, mely a Birbnetes által is használt, a \ref{subsect:mqtt}-es alfejezetben bemutatott MQTT kommunikáció C\# nyelvű megvalósítását szolgálja.
|
||||
Az MQTT.NET \cite{mqttnet-github} is egy .NET szoftvercsomag, mely a Birbnetes által is használt, a \ref{subsect:mqtt}-es alfejezetben bemutatott MQTT kommunikáció C\# nyelvű megvalósítását szolgálja.
|
||||
|
||||
%----------------------------------------------------------------------------
|
||||
\subsection{NLog}
|
||||
|
@ -56,6 +56,6 @@ Az alkalmazás képes üzenetek adatainak generálására, mellyel az AI Service
|
||||
\begin{figure}[!ht]
|
||||
\centering
|
||||
\includegraphics[width=150mm, keepaspectratio]{figures/MQTT-Tester.png}
|
||||
\caption{Az MQTT kommunikációt tesztelő alkalmazás}
|
||||
\caption{Az MQTT kommunikációt tesztelő alkalmazás felületének egy része}
|
||||
\label{fig:mqtt-tester}
|
||||
\end{figure}
|
||||
\end{figure}
|
||||
|
@ -76,7 +76,7 @@ melyet használva a fejlesztők könnyedén képesek a kommunikációra képes k
|
||||
%----------------------------------------------------------------------------
|
||||
A Birbnetes fejlesztése során kifejezetten fontos szerepe volt a mikroszolgáltatás alapú rendszerek elvei követésének.
|
||||
A rendszer egy Kubernetes klaszterben van telepítve és több kisebb komponensből áll, melyek egymás között a HTTP és az MQTT protokollok segítségével kommunikálnak.
|
||||
A rendszer összes szolgáltatásának van egy Open API leírója, melyet használva hamar volt egy olyan kódbázisom, amely képes volt a rendszerrel való kommunikációra.
|
||||
A rendszer összes szolgáltatásának van egy OpenAPI leírója, melyet használva hamar volt egy olyan kódbázisom, amely képes volt a rendszerrel való kommunikációra.
|
||||
|
||||
|
||||
%----------------------------------------------------------------------------
|
||||
|
@ -2,11 +2,19 @@
|
||||
\chapter{Összefoglalás}
|
||||
\label{chapt:summary}
|
||||
%----------------------------------------------------------------------------
|
||||
|
||||
%----------------------------------------------------------------------------
|
||||
\section{Eredmények és tapasztalatok}
|
||||
%----------------------------------------------------------------------------
|
||||
|
||||
Úgy gondolom, hogy az alkalmazásom elérte a célját.
|
||||
Egy használható felületet nyújt a Birbnetes mikroszolgáltatás rendszere működésének vizualizálására.
|
||||
A fejlesztés közben jelentős figyelmet fordítottam arra, hogy az alkalmazás felületi és kód komponensei között
|
||||
minimalizáltak legyenek a függőségek, így a rendszerben történő változások esetén azok könnyen cseréhetőek, bővíthetőek.
|
||||
%----------------------------------------------------------------------------
|
||||
\section{Továbbfejlesztési lehetőségek}
|
||||
%----------------------------------------------------------------------------
|
||||
%----------------------------------------------------------------------------
|
||||
Az kliens oldalon történő diagrammok adatainak generálása hamar túl nagy falatnak bizonyult.
|
||||
A bevetett optimalizációk ellenére sem lett hatványozottan gyorsabb a felület.
|
||||
Így az első és legfontosabb továbbfejlesztési teendő az adatok szerveroldalon történő generálása lenne.
|
||||
|
||||
A Logs oldal jelenleg csak a szerveroldalon készült napló fájlokat tartalmazza.
|
||||
Hasznos lenne, ha az egyes mikroszolgáltatások naplófájljai is letölthetőek lennének.
|
||||
|
||||
Ezen kívül előnyös lenne a rendszer belső működését vizualizáló komponensek alkalmazása is,
|
||||
ahol lehetne látni az egyes mikroszoltáltatásokra vonatkozó különböző metrikákat például az adatfeldolgozási időt vagy a beérkezett kérések számát.
|
Binary file not shown.
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 11 KiB |
@ -53,6 +53,7 @@
|
||||
\definecolor{lightgray}{rgb}{0.95,0.95,0.95}
|
||||
\definecolor{darkviolet}{rgb}{0.58, 0.0, 0.83}
|
||||
\definecolor{royalblue}{rgb}{0.25, 0.41, 0.88}
|
||||
\definecolor{black}{rgb}{0,0,0}
|
||||
|
||||
\lstdefinestyle{csharp}{
|
||||
language=csh,
|
||||
@ -137,6 +138,7 @@
|
||||
identifierstyle=\color{cyan},
|
||||
backgroundcolor=\color{white}
|
||||
}
|
||||
|
||||
\lstdefinestyle{xml}{
|
||||
basicstyle=\scriptsize\ttfamily, % print whole listing small
|
||||
% default behavior: comments in italic, to change use
|
||||
@ -163,6 +165,61 @@
|
||||
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ö}{{\"O}}1 {Ő}{{\H{O}}}1 {Ú}{{\'U}}1 {Ü}{{\"U}}1 {Ű}{{\H{U}}}1
|
||||
}
|
||||
|
||||
\lstdefinestyle{dockerfile}{
|
||||
basicstyle=\scriptsize\ttfamily,
|
||||
numbers=left,
|
||||
numberstyle=\tiny,
|
||||
numbersep=5pt,
|
||||
tabsize=2,
|
||||
extendedchars=true,
|
||||
breaklines=true,
|
||||
frame=b,
|
||||
stringstyle=\color{red}\ttfamily,
|
||||
showspaces=false,
|
||||
captionpos=b,
|
||||
showtabs=false,
|
||||
xleftmargin=17pt,
|
||||
framexleftmargin=17pt,
|
||||
framexrightmargin=5pt,
|
||||
framexbottommargin=4pt,
|
||||
commentstyle=\color{green},
|
||||
morestring=*[d]{"},
|
||||
showstringspaces=false,
|
||||
keywordstyle=\color{blue},
|
||||
morekeywords={FROM, AS, WORKDIR, RUN, COPY, ENTRYPOINT},
|
||||
keywordstyle={[2]\color{orange}},
|
||||
keywordstyle={[3]\color{lightblue}},
|
||||
identifierstyle=\color{black},
|
||||
backgroundcolor=\color{white}
|
||||
}
|
||||
|
||||
\lstdefinestyle{docker-compose}{
|
||||
basicstyle=\scriptsize\ttfamily, % print whole listing small
|
||||
% default behavior: comments in italic, to change use
|
||||
% commentstyle=\color{green}, % for e.g. green comments
|
||||
showstringspaces=false, % no special string spaces
|
||||
aboveskip=3pt,
|
||||
belowskip=3pt,
|
||||
stringstyle=\color{red}\ttfamily,
|
||||
backgroundcolor=\color{white},
|
||||
keywordstyle=\color{blue},
|
||||
identifierstyle=\color{red},
|
||||
columns=flexible,
|
||||
keepspaces=true,
|
||||
escapeinside={(*@}{@*)},
|
||||
captionpos=b,
|
||||
breaklines=true,
|
||||
frame=b,
|
||||
float=!ht,
|
||||
tabsize=2,
|
||||
morestring=*[d]{"},
|
||||
morestring=*[d]{'},
|
||||
morekeywords={version, services, db, image, environment, birdmap, api, ports, volumes, build, context, dockerfile, depends_on},
|
||||
literate=*
|
||||
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ö}{{\"o}}1 {ő}{{\H{o}}}1 {ú}{{\'u}}1 {ü}{{\"u}}1 {ű}{{\H{u}}}1
|
||||
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ö}{{\"O}}1 {Ő}{{\H{O}}}1 {Ú}{{\'U}}1 {Ü}{{\"U}}1 {Ű}{{\H{U}}}1
|
||||
}
|
||||
|
||||
%--------------------------------------------------------------------------------------
|
||||
% Set up theorem-like environments
|
||||
%--------------------------------------------------------------------------------------
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user