Una buena opción para hacer las primeras pruebas de nuestros desarrollos sobre Business Central es probar estos en un entorno local (como harías con otro tipo de desarrollos), pero, ¿Cómo hago para tener un Business Central en mi equipo?. Muy sencillo, usando Docker.
En este artículo te explico como configurarlo todo para que puedas hacerlo.
Instalar las herramientas
Lo primero que vamos a tener que hacer, es asegurarnos que tenemos las herramientas necesarias instaladas en nuestro equipo. Vamos a necesitar: PowerShell y por supuesto Docker para Windows.
Instalar y configurar PowerShell
Si no tienes instalado ya en tu equipo PowerShell, vas a tener que descárgalo e instalarlo. Para ello, puedes usar el comando winget en una consola de comandos.
Ves a inicio > ejecutar y escribe «cmd«, y se te abrirá la consola. Desde ahí escribe el siguiente comando para ver que versiones de PowerShell hay disponibles:
winget search Microsoft.PowerShell
Luego lanzamos el siguiente comando para instalar PoweShell:
winget install --id Microsoft.Powershell --source winget
Ahora ya esta instalado en el equipo. Abre la aplicación y verás una consola como esta:
Hay otras formas de instalar PowerShell que puedes consultar desde aquí.
Ahora vamos a lanzar el siguiente comando:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Este comando establece la política de ejecución de scripts en el sistema. Específicamente, establece la política en «RemoteSigned» para el usuario actual.
La política de ejecución de scripts es una característica de seguridad en PowerShell que controla cómo y cuándo se pueden ejecutar scripts. En este caso, «RemoteSigned» significa que los scripts descargados de internet deben estar firmados digitalmente antes de ejecutarse, mientras que los scripts locales no requieren una firma digital para ejecutarse. Lo necesitaremos más adelante para ejecutar los scripts que crearan todo lo necesario en Docker.
Finalmente, vamos a necesitar unas utilidades especificas para Business Central llamadas bccontainerhelper, que instalaremos con el siguiente comando:
install-module bccontainerhelper -Force
Ya tenemos esta parte cubierta, ahora vamos a instalar Docker y luego seguiremos con esto.
Instalar Docker para Windows
Lo siguiente que se tiene que instalar es Docker para Windows, que sencillamente puedes descargar el instalable desde su web y ejecutarlo.
https://docs.docker.com/get-docker/
Una vez instalado, tienes que cambiar la configuración de este para que ejecute contenedores Windows.
Finalmente, para que te funcione, tienes que ir a las características del sistema para activar los contenedores y Hyper-V. Para ello, clica en la tecla Windows y luego escribe características y clica sobre el menú de «Activar o desactivar características de Windows».
Clica sobre Hyper-V y contenedores para activarlas y luego acepta. Te pedirá que reinicies. Venga, que te espero aquí. (Has de tener una versión pro de Windows)
Crear un Business Central en nuestro equipo local con Docker
Hasta ahora, hemos estado preparando el equipo para lo que de verdad importa y queremos: tener una instancia de Business Central en nuestro equipo local gracias a Docker.
Para crearlo todo, vamos a usar el módulo que instalamos anteriormente de BCContainerHelper que hemos instalado antes. Este comando lo que va a hacer es lanzar un wizard que nos va a realizar una serie de preguntas sobre la instancia de BC que vamos a instalar: versión, autenticación, configuración… Con estas preguntas, se va a generar un script de PowerShell que será el que finalmente lancemos.
Ejecuta PowerShell en modo administrador y escribe:
New-BcContainerWizard
Empezará el wizard.
Aquí tienes la documentación e instrucciones del wizard.
El script generado, luego puedes usarlo siempre que lo necesites y no es necesario tener que lanzar el wizard cada vez. Este es el script que yo uso (y que puedes usar si quieres):
$containerName = 'bussinescentral'
$password = 'P@ssw0rd'
$securePassword = ConvertTo-SecureString -String $password -AsPlainText -Force
$credential = New-Object pscredential 'admin', $securePassword
$auth = 'UserPassword'
$artifactUrl = Get-BcArtifactUrl -type 'Sandbox' -country 'es' -select 'Latest'
New-BcContainer -accept_eula
-containerName $containerName -credential $credential
-auth $auth -artifactUrl $artifactUrl
-memoryLimit 6G -updateHosts
-includeAL
Guarda este script en un fichero de PowerShell y ejecútalo. Ahora toca esperar un rato (a veces parece que no esta haciendo nada, déjalo terminar…).
¡Ahora solo tienes que abrir tu navegador y usarlo!
Extra: confugurar launch.json para usar la instancia local de Business Central
Para lanzar tus extensiones sobre esta instancia, solo tienes que añadir una nueva configuración en tu fichero launch.json y usarla:
{
"name": "LOCAL",
"request": "launch",
"type": "al",
"environmentType": "OnPrem",
"server": "http://businesscentral",
"serverInstance": "BC",
"authentication": "UserPassword",
"startupObjectId": 22,
"startupObjectType": "Page",
"breakOnError": "All",
"launchBrowser": true,
"enableLongRunningSqlStatements": true,
"enableSqlInformationDebugger": true,
"tenant": "default"
}
Espero que te sirva de ayuda. ¡Nos leemos!
Muy buen post, me ha resultado muy útil para poder instalar la última versión de BC24 en un docker para hacer pruebas