Udostępnij ten wpis
Wstęp
Jeżeli chcesz na własną rękę przetestować najnowszą (czy nawet nadchodzącą) wersję BC w zakresie funkcjonalności core’owych (Base Application czy System Application), jeżeli chcesz ustawić własne, lokalne środowisko deweloperskie na potrzeby własne (np. nauki programowania w AL) lub na potrzeby projektów, w których bierzesz udział, lub jeżeli po prostu potrzebujesz sprawdzić określone zachowanie systemu (w standardzie lub przy użyciu określonego dedykowanego rozszerzenia PTE lub ISV) koniecznie na takiej samej wersji jaką ma klient (z dokładnością do numeru builda), bo z jakiegoś powodu nie możesz zrobić tego w środowisku produkcyjnym na kopii firmy, bazie testowej lub sandboxie… uruchomienie kontenera Docker z BC na pokładzie jest właśnie dla Ciebie. W tym poradniku krok po kroku pokażę Ci, jak to zrobić.
Co to są te kontenery?
Aplikacja Business Central do działania potrzebuje zainstalowanego serwera bazodanowego SQL Server, serwera webowego IIS, serwera aplikacji BC oraz dodatkowych komponentów. Jeżeli chciałbyś/chciałabyś to wszystko zainstalować na swoim własnym komputerze (tylko po to, aby coś sprawdzić w BC), ten szybko straciłby na wydajności i przestałby być Twoim niezawodnym narzędziem codziennej pracy. Zainstalowane komponenty serwerowe szybko pożarłyby zasoby Twojego komputera, a i sam system operacyjny byłby mocno obciążony.
Kontenery to jeden ze sposobów na instalowanie i uruchamianie aplikacji na komputerze, jednocześnie izolując je (oraz wszystkie wymagane przez aplikację komponenty) od systemu operacyjnego. Dzięki instalacji całego BC’ka w tzw. kontenerze, trzymamy wszystkie komponenty instalacji w jednym, odizolowanym miejscu (w kontenerze właśnie!) dzięki czemu mamy nad tym całkowitą kontrolę. Zawartość kontenera nie dotknie rejestru naszego systemu, ani nie zje więcej zasobów sprzętowych niż mu na to pozwolimy.
A co to ten cały Docker?!
Docker, a dokładnie Docker Engine, jest z kolei aplikacją typu klient-serwer, która umożliwia tworzenie kontenerów na naszym komputerze, kontroluje je i pozwala nimi zarządzać.
Sposoby na tworzenie środowiska testowego
Powyżej jedynie skrótowo opisałem czym są kontenery. Jeżeli chciałbyś/chciałabyś dowiedzieć się nieco więcej, szerszy opis znajduje się w artykule Sposoby na tworzenie środowiska testowego BC, gdzie opisałem różne sposoby na tworzenie środowisk na cele testowe lub demonstracyjne. Warto przeczytać powyższy artykuł, aby lepiej zrozumieć ideę kontenerowych aplikacji, poznać przewagi konteneryzacji nad maszynami wirtualnymi, mieć rozeznanie jakie są możliwości, ograniczenia i upewnić się czy na pewno kontener z BC jest dokładnie tym czego potrzebujesz.
Wymagania systemowe
Zanim przejdziemy do uruchomienia Twojego pierwszego kontenera z BC, musisz zweryfikować czy Twój komputer i system operacyjny spełniają wymagania dla uruchamiania kontenerów Windowsowych przez aplikację Docker Desktop.
- 64-bitowy system operacyjny Windows 10 lub Windows 11 w edycji Professional lub Enterprise – edycja Home niestety odpada, ponieważ wspiera uruchamianie jedynie kontenerów Linuxowych, natomiast przy BC konieczne jest wsparcie uruchamiania kontenerów Windowsowych,
- Włączone opcjonalne funkcje systemu Windows: Hyper-V oraz Kontenery,
- 64-bitowy procesor z obsługą wirtualizacji sprzętowej oraz Second Level Address Translation (SLAT) ↗,
- Minimalnie 4 GB pamięci RAM (rzecz jasna zalecane jest więcej),
- Włączona wirtualizacja sprzętowa komputera z poziomu BIOS.
O ile kwestia wersji systemu, rodzaju procesora oraz wielkości pamięci RAM jest raczej oczywista, poniżej podpowiadam w jaki sposób można włączyć odpowiednie opcjonalne funkcje systemu Windows oraz jak sprawdzić czy wirtualizacja sprzętowa jest włączona, a jeżeli nie to czego szukać w BIOSie komputera, aby włączyć wirtualizację.
Funkcje systemu Windows
- Aby otworzyć okno z funkcjami systemu Windows, naciśnij kombinację klawiszy ⊞ Win + R lub kliknij PPM na menu Start → Uruchom, a następnie w oknie Uruchamianie wpisz
optionalfeatures
i naciśnij klawisz Enter lub przycisk OK. - W oknie Funkcje systemu Windows znajdź na liście pozycję Hyper-V i upewnij się, że jest włączona (jeżeli nie jest – włącz ją), następnie znajdź na liście pozycję Kontenery i również upewnij się, że jest włączona (jeżeli nie jest – włącz ją).
- Potwierdź zmiany przyciskiem OK. Jeżeli któraś z funkcji była wyłączona, system zainstaluje je w tym momencie, może to zająć kilka minut. Restart systemu jest wskazany po zakończeniu instalacji.
Wirtualizacja sprzętowa
Najpierw sprawdź czy aby wirtualizacja sprzętowa nie jest już włączona:
- Uruchom Menedżera zadań klikając PPM na pasek zadań → Menedżer zadań lub klikając PPM na menu Start → Menedżer zadań lub bardzo klasycznie: naciśnij kombinację klawiszy Ctrl + Alt + del i wybierz Menedżer zadań.
- W oknie Menedżera zadań przejdź do sekcji Wydajność i kliknij na CPU. Pod wykresami wykorzystania procesora powinna być informacja o włączonej wirtualizacji: Wirtualizacja: Włączone.
Jeżeli wirtualizacja sprzętowa jednak nie jest włączona, musisz ją włączyć z poziomu BIOS. Kroki konieczne do wykonania różnią się dla każdego producenta komputerów, ale zazwyczaj trzeba wejść do ustawień BIOSu w trakcie bootowania komputera i szukać opcji o nazwie Virtualization Technology (VTx)
lub czegoś podobnego i przestawić jej wartość na włączoną.
Krok 1: Instalacja Docker Desktop
- Przejdź na stronę: www.docker.com/products/docker-desktop ↗, ściągnij aplikację Docker Desktop for Windows i zainstaluj ją.
- Po poprawnej instalacji aplikacji, ikona Docker Desktop powinna pojawić się w zasobniku systemowym (obok zegarka).
- Przełącz aplikację w tryb obsługi kontenerów Windowsowych: kliknij PPM na ikonie Docker Desktop w zasobniku systemowym i wybierz Switch to Windows containers.

Krok 2: Instalacja BcContainerHelper
Pomimo, że aplikacja Docker Desktop posiada GUI, służy on głównie do zarządzania już istniejącymi kontenerami. Większość operacji potrzebnych do utworzenia kontenera odbywa się przy użyciu komend PowerShell’owych. I o ile możesz użyć w tym celu standardowego modułu Dockera dla PowerShell’a i standardowych komend w nim zawartych, to instalacja modułu BcContainerHelper i wykorzystanie jego komend będzie ogromnym ułatwieniem przy tworzeniu i obsłudze kontenerów stricte z Business Central.
W skrócie o BcContainerHelper
BcContainerHelper (repozytorium na GitHub ↗) jest modułem PowerShell’owym stworzonym przez Microsoft (od chwili pierwszego wydania rozwijanym przez Freddy’ego Kristiansena ↗), który ułatwia pracę z kontenerami Business Central lub NAV na Dockerze.
BcContainerHelper wykonuje za nas część pracy, kumuluje wiele pojedynczych czynności koniecznych do wykonania w jedną, posiada wbudowany kreator tworzenia kontenera z BC, łatwo użyciem modułu utworzyć kontener z wybraną wersją BC lub NAV (nawet z dokładnością do builda), a także, gdy zajdzie potrzeba, ułatwi nam wykonywanie operacji (tj. aktualizacja licencji, instalacja rozszerzeń) na już utworzonych kontenerach BC.
- Uruchom PowerShell’a lub Terminal Windows (w trybie PowerShell’owym) jako administrator.
- Wprowadź:
Install-PackageProvider -Name NuGet -force
Install-Module BcContainerHelper -force
Jeżeli PowerShell zablokuje instalację modułu zewnętrznego, wprowadź poniższy wiersz, a następnie ponów próbę instalacji modułu z punktu 2:
Set-ExecutionPolicy Unrestricted -Scope LocalMachine
Krok 3: Przygotuj plik licencyjny (opcjonalne)
Jeżeli jako konsultant lub programista masz dostęp do licencji Partnerskiej dla BC, możesz zainstalować ją od razu w chwili instalacji BC na kontenerze. Przygotuj najpierw plik licencyjny:
- Plik licencyjny musi być wygenerowany dla tej samej wersji BC, którą zamierzasz uruchomić na kontenerze.
- Plik licencji w formacie .flf (dla NAV i starszych wersji BC) lub w formacie .bclicense (dla nowszych wersji BC) umieść pod łatwo dostępną ścieżką, np.:
C:\temp\my-partner-license.bclicense
.
Krok 4: Przygotuj skrypt do utworzenia kontenera z BC
To zdecydowanie najdłuższy krok, ale wiedz, że raz przygotowany skrypt może być potem używany przez Ciebie wielokrotnie do tworzenia kolejnych kontenerów BC, z ewentualnymi zmianami wartości niektórych parametrów w razie potrzeby (np. nazwy kontenera czy wersji BC). Warto więc poświęcić ten czas i skrupulatnie wybierać opcje pod własne potrzeby. Poniżej postaram się opisać wszystko tak, abyś mógł/mogła przejść gładko przez cały proces. Do dzieła:
- Uruchom PowerShell’a lub Terminal Windows (w trybie PowerShell’owym) jako administrator.
- Uruchom kreatora tworzenia kontenera BC wpisując komendę:
New-BcContainerWizard
- Na ekranie Accept Eula wyświetli się opis kreatora, który na podstawie Twoich odpowiedzi na pytania, które Ci zada, wygeneruje skrypt do utworzenia kontenera BC odpowiadającego Twoim potrzebom. Poniżej znajduje się żądanie akceptacji postanowień licencyjnych. Zaakceptuj je:
Y
i naciśnij klawisz Enter.

- Na ekranie Local Container or Azure VM wybierasz pomiędzy utworzeniem lokalnego kontenera na komputerze na którym uruchomiłeś/uruchomiłaś kreatora, a utworzeniem kontenera na wirtualnej maszynie na Azure (wymaga subskrypcji Azure’owej). Wybieramy opcję lokalnego kontenera na Dockerze
a
, która jest opcją domyślną – wystarczy nacisnąć klawisz Enter. - Wybierz rodzaj uwierzytelniania użytkowników dla BC. Rekomenduję uwierzytelnianie Username/Password, które tak naprawdę jest metodą uwierzytelniania NavUserPassword w BC. Aby móc samemu ustalić nazwę użytkownika i hasło dla konta administratora (pierwszego użytkownika z uprawnieniami SUPER), wybierz opcję
a
i naciśnij klawisz Enter. - Nadaj nazwę swojemu kontenerowi. Nazwa kontenera powinna odróżnić go od innych Twoich kontenerów. Nawet jeżeli jest to Twój pierwszy kontener BC, warto nadać mu własną nazwę. Nazwa powinna być krótka i zbudowana z użyciem małych liter, cyfr oraz ew. myślnika. Naciśnięcie klawisza Enter bez wprowadzania nazwy spowoduje ustalenie domyślnej nazwy:
bcserver
.

Mój schemat nazewnictwa kontenerów
Ja osobiście przyjąłem schemat nazewnictwa zależny od typu BC i jego wersji.
Przykładowo, kontener z BC on-premises w wersji 2023 release wave 1 nazwałbym bcop22
(op
jako skrót od On-Premises, natomiast 22
od numeru wersji 2023 release wave 1 = v22), natomiast kontener z BC online (sandbox) w wersji 2023 release wave 2 nazwałbym bcol23
(ol
jako skrót od OnLine). Gdy tworzę kontener z wersją zapoznawczą (tzw. insider build) korzystam ze skrótu ib
, np. bcib24
. W szczególnych przypadkach, gdy potrzebuję kontenera pod konkretny cel (a nie na cele ogólnotestowe), dodaję dopisek po myślniku, np. bcol23-blog
dla kontenera z najnowszą wersją (23) BC online, tworzonego na potrzeby dzisiejszego poradnika.
Skorzystaj z mojego schematu nazewnictwa, opracuj własny lub żyj w chaosie ;). W końcu to Ty jesteś kapitanem na swoim kontenerowcu!
- Na ekranie Version wybierz wersję BC (lub NAV), którą chcesz zainstalować na kontenerze. Możesz wybrać spośród: najnowszej wersji BC online (sandbox)
a
, która jest opcją domyślną – wystarczy nacisnąć klawisz Enter, najnowszej wersji BC on-premises, wersji zapoznawczych (dla następnej wersji major i następnej wersji minor), określonego builda BC online (sandbox) lub BC on-premises, a także określonych wersji z dokładnością do CU dla: NAV 2018, NAV 2017 i NAV 2016.
Nie wszystkie opcje kreatora są opisane w poradniku
Na potrzeby dalszej części poradnika, wybrałem opcję domyślną, czyli kontener z najnowszą wersją BC online (sandbox), którą na dzień publikacji tego poradnika jest 23.4. Myślę, że będzie to najczęstszy scenariusz dla wielu z Was – wybór najnowszej wersji BC sandbox dla Waszych kontenerów.
Niektóre ekrany i opcje w kreatorze pojawiają się warunkowo, w zależności od wcześniej wybranych opcji. Przykładowo, jeżeli wybierzesz wersję BC 14 lub którąś z wersji NAV, zobaczysz zapytania o instalację środowiska deweloperskiego pod język C/AL, itp., których nie opiszę w przykładzie tego poradnika. Nie zobaczysz natomiast niektórych ekranów, które dotyczą tylko BC lub tylko nowych wersji, itd.
- Na ekranie Country wybierz wersję lokalizacyjną dla wybranej wcześniej wersji BC (lub NAV).

Zakres dostępnych wersji lokalizacyjnych
Warto również zauważyć, że na liście dostępnych wersji lokalizacyjnych znajdują się nie tylko kraje, które są pokryte lokalizacyjnie przez Microsoft, ale również te które posiadają lokalną wersję językową, choć sam pakiet lokalizacyjny dystrybuowany jest przez lokalnego Partnera. Dostępna jest też wersja globalna W1.
- Na ekranie Test Toolkit zdecyduj czy chcesz zainstalować Application Test Toolkit podczas tworzenia kontenera. Jest on potrzebny do pisania testów automatycznych. Jeżeli nie zamierzasz programować na tworzonym kontenerze, możesz pominąć instalację toolkit’a
d
, która jest opcją domyślną – wystarczy nacisnąć klawisz Enter.
Jeżeli zechcesz zainstalować Application Test Toolkit później do swojego kontenera, wciąż będziesz mógł to zrobić przy użyciu komendy:
Import-TestToolkitToBCContainer -containerName <nazwa-twojego-kontenera>
Licencja partnerska konieczna przy pełnym toolkicie
Jeżeli na powyższe odpowiedziałeś/odpowiedziałaś a
, czyli chcesz zainstalować pełny zestaw narzędzi dla testów, w jednym z kolejnych kroków konieczny będzie import pliku licencyjnego z licencją Partnerską. Bez tego nie będzie można ukończyć kreatora i uruchomić kontenera.
- Jeżeli na powyższe odpowiedziałeś/odpowiedziałaś
a
,b
lubc
, pojawi się ekran Performance Toolkit gdzie możesz zdecydować czy chcesz zainstalować rozszerzenie Performance Toolkit (BCPT) do testowania wydajności programowanych rozszerzeń. - Wybierz
Y
na ekranie Premium Plan jeżeli chcesz ustawić BC z możliwościami licencji Premium, albo pozostaw wartość domyślnąN
jeżeli chcesz pozostawić BC z możliwościami licencji Essential. Oczywiście można to zmienić później w BC na stronie Dane firmy. - Na ekranie Create Test Users określ czy chcesz utworzyć użytkowników testowych pod różny poziom licencyjny: Essential, Premium, Team Member, zewnętrzny księgowy, administrator wewnętrzny, administrator delegowany.
- Na ekranie AL Base App Development określ czy będziesz potrzebował programować zmiany w Base Application. Przydaje się również w celach debugowania kodu oraz przeglądania kodu obiektów.
- Jeżeli na powyższe odpowiedziałeś/odpowiedziałaś
Y
, pojawi się ekran Export AL Base App, gdzie musisz określić czy chcesz wyeksportować obiekty Base Application w formie projektu dla Visual Studio Code.
Licencja partnerska konieczna przy eksporcie Base App
Jeżeli na powyższe odpowiedziałeś/odpowiedziałaś Y
, czyli chcesz wyeksportować projekt z obiektami Base Application, w jednym z kolejnych kroków konieczny będzie import pliku licencyjnego z licencją Partnerską. Bez tego nie będzie można uruchomić kontenera.
- Na ekranie AL Language Extension określ czy chcesz korzystać z wersji rozszerzenia języka AL dla Visual Studio Code w wersji odpowiedniej dla wersji wybranego BC – opcja
N
, domyślna, czy najnowszej dostępnej – opcjaY
. - Na ekranie License możemy (albo musimy – patrz uwagi powyżej) podać plik licencji do zaimportowania w tworzonym kontenerze. Należy wprowadzić pełną ścieżkę do pliku licencyjnego, który wcześniej przygotowaliśmy (patrz krok 3), np.:
C:\temp\my-partner-license.bclicense
i nacisnąć klawisz Enter. Jeżeli w ścieżce występuje choćby jedna spacja, zawrzyj całą ścieżkę w podwójnym cudzysłowu, np.:"C:\Mój folder\Licencja (BC23).bclicense"
.

Licencja demonstracyjna Cronus
Jeżeli odpowiedzi na poprzednie pytania spowodowały, że nie masz obowiązku wskazywać pliku licencyjnego z licencją Partnerską, naciskając klawisz Enter bez wprowadzania ścieżki do pliku, użyta zostanie licencja demonstracyjna Cronus.
- Na ekranie Database w specyficznych przypadkach możesz wskazać, że chcesz uruchomić BC na kopii bazy SQL, którą posiadasz (np. kopia bazy produkcyjnej klienta, którą trzeba zmigrować czy sprawdzić) lub aby BC podłączył się do istniejącej bazy danych SQL (np. na serwerze SQL Server zainstalowanym na komputerze). W przeciwnym razie, skorzystaj z opcji
a
, domyślnej, naciskając klawisz Enter, co spowoduje, że kontener będzie utworzony z własną bazą SQL i będzie to baza demonstracyjna Cronus. - W przypadku wyboru BC online (sandbox), pojawi się ekran Multitenant, gdzie decydujesz czy środowisko w kontenerze ma być wielotenantowe czy jednotenantowe. Domyślnie BC online (sandbox) w kontenerze Docker instaluje się jako środowisko wielotenantowe i chyba w niczym to nie przeszkadza – naciśnij klawisz Enter.
- Możesz zdecydować o konfiguracji DNS dla kontenera, jeżeli podczas wcześniejszych instalacji kontenerowych doświadczyłeś problemów z rozwiązywaniem nazw sieciowych. Jeżeli nie – naciśnij klawisz Enter.
- Na ekranie SSL możesz wybrać czy chcesz zabezpieczyć ruch sieciowy dla BC w kontenerze czy nie. Kontenery w naszym scenariuszu zwykle są używane tylko z komputera na którym są utworzone, nigdy z zewnątrz, więc teoretycznie SSL nie jest wymagany. Ja jednak rekomenduję wybranie opcji
c
, aby zainstalować certyfikat self-signed, skonfigurować BC do obsługi po HTTPS i zarejestrować certyfikat na komputerze. Po pierwsze wyeliminuje to ostrzeżenia bezpieczeństwa przeglądarek internetowych, a po drugie niektóre funkcjonalności działają tylko, gdy SSL jest włączone. - Na ekranie Isolation możliwy jest wybór trybu izolacji dla kontenera. Temat jest mocno techniczny, ale generalnie izolacja procesowa (opcja
b
) powinna być OK dla większości przypadków (gdy wersja Twojego Windowsa odpowiada lub jest bliska, którejś z wersji systemu operacyjnego dostępnego w obrazach z repozytorium kontenerów BC hostowanym przez Microsoft… – mówiłem, że mocno techniczny temat). Naciśnij Enter by kreator wybrał najbardziej odpowiednią metodę izolacji bazując na porównaniu wersji systemów operacyjnych. W przypadku jednak, gdy tworzenie kontenera NIE powiedzie się, spróbuj ponownie i ustal tryb izolacji na izolację Hyper-V (opcjac
). - Ustal limit przydzielania pamięci operacyjnej RAM na ekranie Memory Limit. System będzie przydzielał kontenerowi pamięć dynamicznie na różny sposób w zależności od wybranego trybu izolacji (patrz punkt wyżej). Aczkolwiek jeżeli nie chcesz, aby kontener w jakiejkolwiek sytuacji zużył więcej pamięci, ustal limit w gigabajtach. Naciśnięcie klawisza Enter bez wprowadzenia wartości spowoduje, że kontener będzie uruchomiony bez limitu pamięci RAM w przypadku trybu izolacji procesowej lub 4 GB pamięci RAM w przypadku trybu izolacji Hyper-V.
- Jeżeli zamierzasz tworzyć wiele podobnych do siebie kontenerów, możesz zapisać obraz w Dockerze pod przyjazną nazwą, co zaoszczędzi nieco czasu na kolejnych uruchomieniach tego samego skryptu. Wprowadź nazwę dla obrazu, jeżeli chcesz go zapisać. Jeżeli nie jesteś przekonany/przekonana czy faktycznie będziesz tworzyć wiele podobnych do siebie kontenerów – nie zapisuj obrazu, naciśnij klawisz Enter bez wprowadzania nazwy.
- Na koniec możesz zapisać swój wygenerowany na podstawie odpowiedzi skrypt w formie pliku ze skryptem PowerShell’owym. Wprowadź nazwę i naciśnij klawisz Enter. Plik zostanie zapisany na Twoim komputerze oraz otwarty w PowerShell ISE. Jeżeli natomiast naciśniesz Enter bez wprowadzenia nazwy dla skryptu, kreator zapyta, czy chcesz wykonać skrypt natychmiast bez zapisywania go. Rekomenduję jednak podać nazwę i zapisać :).


Krok 5: Uruchom skrypt i utwórz kontener BC
Jeżeli w poprzednim kroku, w ostatnim punkcie nie wpisałeś/wpisałaś nazwy dla skryptu, prawdopodobnie już go uruchomiłeś/uruchomiłaś i kontener się tworzy, możesz przeskoczyć do punktu 6 w tym kroku. Jeżeli jednak zapisałeś/zapisałaś go do pliku, zapisał się on prawdopodobnie w Twoim domyślnym folderze Dokumentów i jest gotowy do uruchomienia.
Jeżeli po wykonaniu poprzedniego kroku aplikacja PowerShell ISE jest wciąż uruchomiona z otwartym wygenerowanym skryptem, możesz pominąć dwa pierwsze punkty.
- Uruchom PowerShell ISE jako administrator.
- Otwórz plik w formacie .ps1 z wygenerowanym skryptem do utworzenia kontenera BC.
- Uruchom skrypt klawiszem F5 lub akcją Run Script z paska narzędzi.
- Jeżeli na ekranie Authentication kreatora (patrz krok 4, punkt 5) wybrałeś opcję
a
, aby móc samemu ustalić nazwę użytkownika i hasło dla użytkownika, wyświetli się okno gdzie wprowadź Nazwę użytkownika oraz Hasło jakie chcesz ustalić dla użytkownika w BC. Potwierdź wprowadzone dane przyciskiem OK. - Tworzenie kontenera rozpocznie się. Możesz śmiało iść zrobić sobie kawę ;)
Czas do uruchomienia
Tworzenie pierwszego kontenera zajmie od około 15 do 90 minut (w zależności od prędkości łącza internetowego), natomiast każdy następny będzie tworzył się znacznie szybciej. Przy kolejnych kontenerach Docker będzie potrzebował ściągnąć jedynie brakujące elementy, korzystając z już wcześniej ściągniętych elementów wspólnych (np. elementy systemowe, SQL Server, IIS).
Tworząc kolejny kontener z BC w tej samej wersji co poprzednio, wszystkie elementy artefaktu będą mogły być ponownie użyte i nie będzie potrzeby ściągania niczego. Zatem czas uruchomienia kolejnych kontenerów BC może spaść nawet do kilku minut.
W panelu konsoli aplikacji PowerShell ISE (czyli dolnej części aplikacji) będziesz mógł śledzić postępy procesu tworzenia kontenera. Poniżej opisuję z grubsza to co się dzieje (dla ciekawskich – musisz rozwinąć).
Kontener z Business Central jest utworzony i gotowy do pracy! Możesz go uruchomić z utworzonego na pulpicie skrótu do Web Clienta lub po prostu w pasku adresu ulubionej przeglądarki wpisując adres do Web Clienta, który został Ci podany na końcu działania skryptu.



Krok 6: Zainstaluj rozszerzenia (opcjonalne)
Na kontenerze z BC masz możliwość instalacji własnych rozszerzeń PTE oraz rozszerzeń ISV dla których posiadasz runtime app (aplikację skompilowaną w paczkę .app).
Jeżeli potrzebujesz zainstalować np. Polish Localization lub Localization for Poland, użyj swojego dostępu Partnerskiego do zasobów IT.integro lub Companiala i pobierz runtime app odpowiadający wersji BC zainstalowanej na kontenerze. Podobnie z innymi rozszerzeniami ISV. Rozszerzenia PTE możesz publikować w podobny sposób (za pomocą skompilowanego runtime app) lub robić to wprost z Visual Studio Code.
- Paczki .app rozszerzeń w wersjach odpowiadających zainstalowanej na kontenerze wersji Business Central umieść pod łatwo dostępną ścieżką, np.:
C:\temp\extensions\<nazwa-extension>.app
. - Uruchom PowerShell’a lub Terminal Windows (w trybie PowerShell’owym) jako administrator.
- Wprowadź:
Publish-BcContainerApp -containerName <nazwa-twojego-kontenera> -appFile "C:\temp\extensions\<nazwa-extension>.app" -skipVerification -sync -install
- Rozszerzenie zostanie opublikowane, zsynchronizowane oraz zainstalowane.
- Ponów punkt 3 dla każdego rozszerzenia, które chcesz zainstalować.
To właściwie już wszystko. Dotarłeś/dotarłaś do mety 🏁 dobra robota! Jakikolwiek był Twój cel w utworzeniu tego środowiska BC, jest już gotowe, więc… do dzieła! 💪 Aczkolwiek zanim pójdziesz testować czy sprawdzać czy programować na swoim nowym środowisku, zapoznaj się jeszcze z kilkoma dodatkowymi poradami nt. Twojego kontenera:
Dodatek 1: Użyj skryptu ponownie
Gdy będziesz potrzebował/potrzebowała utworzyć kolejny kontener z Business Central możesz oczywiście wrócić do kroku 4 i przejść przez kreator raz jeszcze. Przejście przez kreator kolejny raz pójdzie Ci o wiele szybciej niż za pierwszym razem. Jeszcze szybszą metodą będzie jednak otwarcie skryptu, który utworzyłeś/utworzyłaś za pierwszym razem i zmiana odpowiednich parametrów:
- W linii ze zmienną
$containerName
zmień nazwę dla kontenera. - W linii ze zmienną
$artifactUrl
po parametrze-type
wybierz typ kontenera:Sandbox
dla wersji BC online lubOnPrem
dla wersji BC on-premises. - Po parametrze
-country
możesz zmienić wersję lokalizacyjną, jeżeli potrzebujesz innej niż wcześniej. - Po parametrze
-select
możesz wybrać spośród kilku wartości (w PowerShell ISE możesz przejść przez wszystkie dostępne wartości wciskając klawisz Tab ↹, gdy kursor stoi zaraz za parametrem-select
i znakiem spacji), aby skrypt wybrał wersję z najnowszego wydania, następnego, itd. - Możesz również zamienić parametr
-select
na parametr-version
i wtedy wprowadzić własnoręcznie numer wersji BC, którą chcesz zainstalować na kontenerze. Numer wersji możemy podać z dokładnością co do wersji major, minor lub nawet z dokładnością do konkretnego builda. Jeżeli podasz wersję jedynie z dokładnością do numeru wersji major, to skrypt dobierze ostatnią wydaną wersję minor (najnowszą w podanej wersji major) i ostatniego builda w tej wersji. Numery oddzielaj znakiem kropki, np.-version 21
zainstaluje BC 21 w ostatniej (najnowszej) wersji minor wydanej dla BC 21 i najnowszym buildzie jaki został wydany;-version 21.3
zainstaluje BC 21.3 i najnowszym buildem jaki został wydany specyficznie dla 3. wersji minor BC 21;-version 21.3.51409.51727
zainstaluje dokładnie tego builda, którego wskazujesz. - W linii ze zmienną
$licenseFile
(jeżeli taką masz w skrypcie oczywiście – zależy od tego czy wybrałeś odpowiednią opcję importu licencji w trakcie tworzenia skryptu) dostosuj ścieżkę do pliku licencyjnego w wersji jaką chcesz zainstalować na kontenerze. - Dostosuj pozostałe wartości zmiennych i parametrów swojego skryptu i uruchom go!

Monitoruj zasoby komputera
Pomimo wszelkich zalet kontenerów i tego w jaki sposób korzystają one z zasobów komputera, pamiętaj, aby monitorować zasoby swojego komputera z których korzystają kontenery na Dockerze (szczególnie pod kątem pamięci RAM i użytej przestrzeni dyskowej).
Zatrzymuj kontenery z poziomu aplikacji Docker Desktop, jeżeli z nich nie korzystasz lub korzystasz rzadko i uruchamiaj je dopiero, gdy faktycznie są potrzebne. W ten sposób pamięć operacyjna nie będzie rezerwowana od razu przy starcie komputera.
Utrzymuj ilość kontenerów na rozsądnym dla siebie poziomie. Czy na prawdę nadal potrzebujesz tych starych środowisk sprzed 2 lat? Czy one w ogóle jeszcze działają? Czy mają aktywną licencję? Może warto je usunąć i zwolnić trochę przestrzeni dyskowej…?
Dodatek 2: Zaimportuj nową licencję
Jeżeli importowałeś do kontenera licencję Partnerską prędzej czy później będziesz potrzebował/potrzebowała zaktualizować licencję i zaimportować nowy plik licencyjny w miejsce starej licencji, która wygasła lub wkrótce wygaśnie:
- Przygotuj nowy plik licencyjny, tak jak zostało opisane w kroku 3.
- Uruchom PowerShell’a lub Terminal Windows (w trybie PowerShell’owym) jako administrator.
- Wprowadź:
Import-BcContainerLicense -containerName <nazwa-twojego-kontenera> -licenseFile "C:\temp\my-partner-license.bclicense" -restart
- Licencja zostanie zaimportowana do bazy danych na wskazanym kontenerze, a serwer aplikacji BC zostanie automatycznie uruchomiony ponownie za sprawą parametru
-restart
, aby nowa licencja od razu zaczęła działać.
Dobrej zabawy! 😎