W tym wpisie opisze jak uruchomić aplikacje webową .Net Core 2.1 na systemie operacyjnym Ubuntu 18.04. Do celów demonstracyjnych posłuży mi prosta gra pamięciowa polegająca na dopasowaniu dwóch tych samych kart. (Inspiracje na grę zaczerpnąłem z mini gierki z najnowszego dodatku World of Warcraft Battle for Azerot 🙂 ) Kod źródłowy aplikacji jest dostępny na gitHub.
Pierwszym krokiem jaki musimy wykonać w Ubuntu to zainstalowanie SDK .Net Core.
Dla systemu operacyjnego Ubuntu 18.04 w konsoli wykonujemy poniższe komendy:
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt-get update sudo apt-get install dotnet-sdk-2.1 dotnet --version
Informacje o instalacji .Net Core dla pozostałych dystrybucji Linuksa znajduje się tutaj.
Drugim krokiem jest instalacja i konfiguracja nginx.
sudo apt-get install nginx
edytujemy plik z konfiguracją
sudo nano /etc/nginx/sites-available/default
wpisujemy poniższą treść:
server { listen 80; server_name _; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
po zapisaniu pliku robimy reload serwera nginx
sudo nginx -s reload
Trzecim krokiem jest pobranie naszej aplikacji z repozytorium.
Przechodzimy do katalogu domowego i wykonujemy poniższe polecenia
jeżeli nie ma zainstalowanego systemu kontroli wersji git, to instalujemy
sudo apt install git
pobieramy aplikacji z repozytorium
git clone https://github.com/dbtrunks/PairMatching.git
przechodzimy do katalogu z aplikacją
cd PairMatching/PairMatching
budujemy aplikacje w katalogu głównym
dotnet publish -c Release --output ./
aplikacja korzysta z LiteSQL, przy pierwszym uruchomieniu należy utworzyć bazę danych
dotnet ef database update
możemy sprawdzić czy nasza aplikacja uruchamia się poprawnie
dotnet PairMatching.dll
*Można również przesłać na serwer też skompilowane pliki aplikacji. Nie trzeba pobierać całego repozytorium.
Krokiem czwartym jest uruchomienie aplikacji jako usługę.
Przechodzimy do katalogu system
cd /etc/systemd/system/
tworzymy nowy plik o nazwę dotnet-core-app.service
sudo nano dotnet-core-app.service
wpisujemy poniższą treść:
[Unit] Description=.NET Core application on Ubuntu [Service] WorkingDirectory=/home/ubuntu/PairMatching/PairMatching ExecStart=/usr/bin/dotnet /home/ubuntu/PairMatching/PairMatching/PairMatching.dll Restart=always RestartSec=10 SyslogIdentifier=dotnet-core-app User=ubuntu Environment=ASPNETCORE_ENVIRONMENT=Production [Install] WantedBy=multi-user.target
po zapisaniu pliku uruchamiamy usługę
sudo systemctl enable dotnet-core-app.service sudo systemctl start dotnet-core-app.service sudo systemctl status dotnet-core-app.service
W przeglądarce po wpisaniu adres ip maszyny z Ubuntu z portu 80 zostaniemy przekierowani do port 5000 do aplikacji .Net Core.
Aplikacja przez kilka dni będzie dostępna pod adresem pc-pairmatching.westeurope.cloudapp.azure.com.
Miłego grania.