Do you know what Portainer is? In simple words, it’s a simple management solution for Docker and it consists of a web UI that allows you to easily manage your Docker containers, images, networks and volumes. All is based on a single container that can run on any Docker engine (Linux or Windows).
Have you ever thinked on having something similar for Dynamics 365 Business Central? Something like a simple user interface to create your locally hosted Dynamics 365 Business Central container-based sandboxes? If your answer is yes (I’m one of you) there’s something in the air…
Business Central in a Box (BCinaB) is an interesting project developed by Tobias Fenster that permits you to have a web UI for creating new Dynamics 365 Business Central / Dynamics NAV containers (it consists of a Angular Material based frontend and a .NET Core webapi backend with an nginx reverse proxy).
I had the pleasure to test the first alpha versions of this project and I think it’s very interesting and something that everyone in the community must know.
Installing BCinaB is really simple (I’ve tested it on my Windows 10 1809 machine with Docker for Windows installed). You have to download on your local machine a docker-compose.yml file (the compose file is a YAML file defining services, network and volumes) available here and put it in a folder you want. Then you have to open a command prompt as admin in the previously created folder, run the docker command to login to the private repository where all is hosted (docker login xxx, details provided by Tobias) and as last step run “docker-compose up” and wait until the pulling process is finished.
At the end of the process, you can open your browser at http://localhost:8080 and this is what appears to you:
You can see two application containers running plus all your existing local containers (if you have some of them).
From the interface you can create a new Docker container and you can choose one of the following images:
When selecting the image, you can set the image tag (build number or for example just latest to have the latest version) and the country (localization). Then you can also choose the Windows Server version for your container (2016 or 2019):
After inserting the image details, a confirmation message appears:
Answering Yes starts the Docker pull process:
At the end of the pull process, your Business Central / Dynamics NAV Docker container is created (with a random-generated name). Clicking on the container shows you the details:
From the user interface you can start/stop/delete your containers in a very simple way.
This is an alpha (I have the version 4 at the time of this post) so many things are under development and I think that they can be added or improved if we provide feedbacks (the project’s GitHub repository is a great place for that).
Some important things that are missing now in my opinion are:
- Having the possibility to select the container name (I know that this will be released soon)
- Some confirmation messages (for starting a container and expecially for deleting a container) could be added
- Having the possibility to see the container’s log. This is very important expecially for D365BC, at the moment I’ve used the command prompt as usual for that but having it directly in the container’s informations (maybe with a dedicated button) could be interesting:
- Could be interesting to have the possibility to insert many other configuration parameters during the container’s creation, like authentication type, if using SSL or not, license file to load etc. The best to have? Integration with NavCointainerHelper parameters.
The project is very interesting, I think I’ll continue to use it every day on my machine for sure. Keep up the great work Tobias!
P.S. start using Windows Server 2019 docker images. Size is extremely reduced compared to a Windows Server 2016 one:
hopefully almost all of the things you mentioned as missing should now be available 🙂
Thanks for testing and your feedback,
A great work Tobias. Keep me in your mailing list if you plan to maintain that. I’ve bookmarked the GitHub repo however.