Chcielibyście móc przetestować własną aplikację ASP.NET 5 na linuxie będąc na windowsie? Nic prawie prostszego :)
Jednak zanim to będzie możliwe potrzebne jest zainstalowanie Dockera. By tego dokonać możecie zrobić przejść przez kroki tutaj lub przeczytać niżej jak ja to zrobiłem.
Najpierw trzeba zainstalować Boot2Docker (link do instalki), z tego względu, że docker nie działa na razie na Windowsach, wymaga linuxa. To samo jest z maciem. Więc instalujemy aplikację która zainstaluje nam wszystkie niezbędne komponenty w tym VirtualBox. Boot2Docker umożliwi nam stworzenie małej instancji VM linuxowej, na której będzie hostowany docker. Za pomocą czarów marów docker będzie dostępny tak jakby z poziomu windows :)
Po zainstalowaniu, odpalamy GIT Bash i wpisujemy polecenie:
Boot2Docker start
To albo wystartuje nam tą maszynkę linuxową, albo ją nam stworzy i wystartuje. Po wystartowaniu maszynki musimy wykonać polecenia export które są nam wyświetlone:
Czemu? A temu, że inaczej nawet się na maszynkę nie sshujemy.
Następnie w katalogu naszej aplikacji musimy stworzyć Dockerfile
, jego zawartość jest prosta jak konstrukcja cepa:
# ustawiamy image dockera na najnowszy (nightly tag) FROM microsoft/aspnet:nightly # mowimy co ma byc skopiowane gdzie na maszynce COPY . /app # ustawiamy nasz katalog roboczy na maszynie WORKDIR /app # odpalamy komende pobierajaca paczki RUN ["dnu", "restore"] # odpalamy aplikacje ENTRYPOINT ["dnx", ".", "run"] # jezeli mamy web app a nie console to: # expose daje nam informacje jaki port maszynki bedzie dostepny, musi byc taki sam jak ten z project.json # EXPOSE 5004 # ENTRYPOINT ["dnx", ".", "kestrel"]
Mając tak gotowy plik, oddalamy komendę:
docker build -t web .
Która nam stworzy VM pod nasz projekt z ustawieniami Dockerfile
. web
to nazwa naszej maszynki dockera, może to więc być coś innego
Następnie jak już mamy all gotowe to odpalamy:
docker run -dt -p 4888:5004 web docker run console #dla console app chyba, że coś innego
gdzie 4888
to port przez jaki będziemy się dostawać do aplikacji. Adres IP zaś jest adresem który w poleceniu export wypisaliśmy w moim przypadku to: 192.168.59.103
. Możemy też wykonać polecenie:
boot2docker ip
które nam adres IP zwróci.
Jeżeli wszystko dobrze zrobiliśmy i mamy std aplikację z WelcomePage to powinniśmy mieć taki o to widok:
Jeżeli zaś mamy console app to taki wynik:
Proste? Proste a przy tym jakie fajne!
Aaa bym zapomniał :) wyjście z dockera by go ubić itp:
docker stop . boot2docker stop
ASP.NET 5 – w docker na window – da się :)
Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl
Może nano windows serwery pozwolą odpalać to jakoś bardziej przyjaźnie.
@Babinicz
Moze, ale to odpalanie nie jest takie zle, mozna wiekszosc ze skryptowac i trzeba jedynie pamietac o tym ze zanim zrobimy docker trzeba odpalic nasz startowy skrypt.
Ale oczywiscie jak nano zrobi tak ze tego startowego skryptu nie bede potrzebowal to super :)
Comments are closed.