Adobe Experience Manager & Docker

Adobe Experience Manager (AEM) is the current darling of content management systems for large enterprise clients. The software’s relatively slick interface, and Adobe’s relentless sales team mean that you can’t swing a cat in Melbourne without hitting a company looking at deploying AEM.

I’ve been working on an AEM project the last view months, but to learn more about AEM deployment process, I decided that I’d try and get it running within a Docker container. Getting a basic author instance running on your workstation is as easy as double clicking the installation file, but more complex deployments with publishers and dispatchers are more challenging. However, to start with I’ve put together a basic Docker AEM author image as a proof of concept.

Automating the AEM installation was challenging enough, as I ended up needing to use a Python script to monitor when the installation was actually finished; something that Adobe seems to hide in a command line argument and a HTTP callback. What happened to the days when an installer could quit all by itself?

My complete inexperience with Docker also introduced some infuriating hindrances in the process. I got all excited by the plethora of recipes on the Docker registry but it took me a while to discover that not all images are created equal, and that not all images are compatible. I was quit pleased when I saw I could get a Java image (“dockerfile / java”), but I wasn’t too pleased two hours later when I finally noticed that it was based on Ubuntu, and therefore wasn’t accessible in my Centos image. A valuable lesson indeed.

I’ve uploaded my Dockerfile to the Docker registry, for your enjoyment. Hopefully it’ll give you a hand with your AEM projects.