Today we deliver a feature that has been requested many times in the past couple of years: a hypernode-docker for local Magento development and deployment automation. Lately with the proliferation of continuous integration and automated deployments in the Magento space, partly because of improvements in the deployment lifecycle in Magento 2.2, but also because of an increasing demand for tools to streamline feature development and testing, we have heard the need for a production-like containerized environment.

An official Docker image for Hypernode

Like the previously existing hypernode-vagrant, the new hypernode-docker is an environment that you can use on your computer to simulate a real Hypernode. You’ll get the same exact software, tools and configurations as on your production server but in a fast and disposable environment that you can run locally or integrate as part of your deployment pipeline. While the Vagrant also has a performant container based configuration (LXC), using Docker offers some additional advantages in terms of user-friendliness, tooling and off-the-shelf integration with peripheral services like BitBucket Pipelines and GitLab Runner.

For an example Dockerfile take a look at ByteInternet/hypernode-docker on GitHub. Or run the following two commands to pull the image and start a new instance on your local machine.

A new Docker image will be automatically built every time we do a platform release, which generally happens multiple times a day because of our continuous deployment development process. That way you can test your application against an image that is as close as possible to the production environment. Because the Docker is updated this frequently, in some cases you could even be running a newer version of Hypernode locally than what has actually been propagated to your production nodes yet.

However, keep in mind that because Dockers are not VMs there will be some fundamental differences between the container and a real Hypernode (or a Vagrant). There is not a conventional init system, so services can’t be managed by tools like systemctl. It is possible to run systemd inside the container but we have chosen not to do so to achieve greater compatibility with hosts that do not run systemd themselves (like macOS).

A website for community docs: community.hypernode.io

For more information about this Docker based Magento development environment, check out the hypernode-docker section on our new website for Hypernode community docs. To make the documentation for this new feature optimally accessible, we have set up a website based on docsify that will gather the open source documentation for various of our open source projects and display them neatly on https://community.hypernode.io.

This will hopefully make it easier to discover documentation that would otherwise be buried somewhere on GitHub. If there is some documentation that you would like to add or alter, you can click ‘Edit Document’ and you’ll be redirected to the correct file on GitHub.