雖然已經(jīng)在本機搭建了 Dynamics 365 Business Central的運行及開發(fā)環(huán)境,為了熟悉 Docker 技術(shù)甲捏,還是決定鼓搗一下。
如果對也和我一樣對 Docker 剛剛接觸景描,可以閱讀這篇 MSDN 介紹?Windows Containers囱桨。另外這片文章10張圖帶你深入理解Docker容器和鏡像也深入淺出的解析了 Docker 命令邮旷。如果想學習更多 Docker 相關(guān)的容器知識,可以到Channel9 進階學習Docker 技術(shù)找到眾多的視頻資料蝇摸。另外如果有其他關(guān)于 Docker 的問題(即使和 NAV 無關(guān)),也可以到Docker MSDN論壇尋求幫助办陷。
1. 安裝 Docker貌夕。
Docker 可以安裝在Windows 10 或者 Windows 2016/2019(服務器),我分別按照MSDN做了嘗試民镜。(1)Windows 10 Pro (1903)- Mac 上的虛擬機啡专。在 Docker Hub 下載安裝包Docker Desktop,直接安裝制圈。Docker Desktop 提供界面化操作们童,期間遇到 Docker 一直無法啟動的問題,經(jīng)排查發(fā)現(xiàn)是 Hyper-V 的服務沒有正常啟動鲸鹦,在 Service 中對相應的服務啟動后慧库,問題排除。此外馋嗜,Docker Desktop 默認是運行 Linux 的 Container齐板,需要切換為 Windows Container 才能開始后續(xù)的操作(右鍵點擊托盤中的小鯨魚圖標,切換即可)葛菇。
(2)Windows 2019 - Azure 上的虛擬機甘磨。具體操作見前文如何創(chuàng)建 Azure 虛擬機。RDP 進入 Windows 2019眯停,管理員權(quán)限運行 PowerShell ISE济舆,并分別執(zhí)行以下命令即可完成 Docker 安裝。
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
Restart-Computer -Force
2. 安裝 NAV 容器
本地部署的 Business Central 的 Image 文件可以從 Docker Hub 上取得莺债。?https://hub.docker.com/_/microsoft-businesscentral-onprem?
關(guān)于 Container 的 Image 和 Tag 說明可以參見技術(shù)大牛的博客:
3. 安裝NavContainerHelper
NavContainerHelper是 一個PowerShell開源模塊滋觉,可以直接從 PowerShell Gallery 下載。使用該模塊可以簡單的對 NAV Container 進行操作九府。
(1)管理員權(quán)限運行 PowerShell ISE
(2)執(zhí)行命令?Set-ExecutionPolicy -ExecutionPolicy?Unrestricted
該步驟Windows 2019 不需要椎瘟,Windows 10 下需要執(zhí)行,否則下面的 NAVContainerHelper 模塊下載后不能正常導入及使用侄旬。
(3)執(zhí)行命令?install-module navcontainerhelper -force 已下載并導入模塊
(4)執(zhí)行命令?Write-NavContainerHelperWelcomeText?來按功能類別對命令分組展示
(5)執(zhí)行命令如下命令創(chuàng)建 Business Central 的容器肺蔚。注意?-accept_eula 是必須參數(shù),否則容器創(chuàng)建過程會失敗儡羔,這個是接受微軟 End User License Acceptance的參數(shù)宣羊。改命令會找到最合適當前系統(tǒng)環(huán)境的 Image 創(chuàng)建容器璧诵。
New-NavContainer -accept_eula -auth NavUserPassword -containerName myBC -imageName mcr.microsoft.com/businesscentral/onprem
New-NavContainer命令是在 Docker 命令 Run 的基礎(chǔ)上自動添加了很多參數(shù):
docker run --name myBC `
? ? ? ? ? --hostname myBC `
? ? ? ? ? --env auth=NavUserPassword `
? ? ? ? ? --env username="dawnangel" `
? ? ? ? ? --env ExitOnError=N `
? ? ? ? ? --env locale=en-US `
? ? ? ? ? --env licenseFile="" `
? ? ? ? ? --env databaseServer="" `
? ? ? ? ? --env databaseInstance="" `
? ? ? ? ? --volume "C:\ProgramData\NavContainerHelper:C:\ProgramData\NavContainerHelper" `
? ? ? ? ? --volume "C:\ProgramData\NavContainerHelper\Extensions\test\my:C:\Run\my" `
? ? ? ? ? --restart unless-stopped `
? ? ? ? ? --env useSSL=N `
? ? ? ? ? --env securePassword=<encryptedpasword> `
? ? ? ? ? --env passwordKeyFile="c:\run\my\aes.key" `
? ? ? ? ? --env removePasswordKeyFile=Y `
? ? ? ? ? --env accept_eula=Y `
? ? ? ? ? --detach `
? ? ? ? ? microsoft/businesscentral/onprem
然后就是等待從 Docker Hub 下載鏡像文件,Azure 上的 Windows2019 很快就安裝成功了仇冯。本機的 Windows10 需要經(jīng)過漫長的等待......
自動啟動 Container之宿,Business Central 相關(guān)的參數(shù)會顯示在 PowerShell的界面中
安裝成功后,可能需要在 DNS或者 Hosting 文件中增加 Container 的 IP 和 Hosting Name 的映射關(guān)系苛坚,否則可能無法直接從 Web Client 以及 Dev. Server訪問比被。
此時雙擊桌面 Web Client 圖標,可以成功打開 Business Central 的網(wǎng)頁客戶端泼舱。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
后記:
由于我的生產(chǎn)力電腦是 Mac等缀,所以也對 Docker 以及 Business Central 在 Mac 上的運行進行了相關(guān)驗證。得出如下結(jié)論:
1. Docker 是可以運行在 Mac OSX 上的娇昙,可是由于 Business Central 的 Image 只能運行在 Windows 系統(tǒng)上尺迂,所以還不能在 Mac 上通過 Docker 完成 Business Central 的相關(guān)開發(fā)及應用。希望微軟后續(xù)提供支持 Mac 的Image冒掌。
2. 雖然 Mac 上無法本地安裝 Business Central(直接安裝或者 Docker 容器)噪裕,但是仍然可以在 Mac上直接安裝 Visual Studio Code 來完成相關(guān)的 Business Central 的開發(fā)(通過 CloudSandbox 以及直接連接服務器的方式),這是因為 Mac 和 Windows 上安裝的 Visual Studio Code 都是連接相同的 Marketplace股毫,所以都可以下載安裝 AL Language ?Extension 來完成 Business Central 的 AL 開發(fā)膳音。具體操作可以參見這篇 Blog:How to develop Microsoft Dynamics Business Central App from MacOS