Aplikacja .Net Core na Ubuntu

Opublikowany Autor Piotr CudnikDodaj komentarz

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.