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:

docker

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:

aspnet

Jeżeli zaś mamy console app to taki wynik:

console

Proste? Proste a przy tym jakie fajne!

Aaa bym zapomniał :) wyjście z dockera by go ubić itp:

docker stop .
boot2docker stop

3 KOMENTARZE

  1. @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.