Docker AEM Bundle

3 minute read

Building on the previous work Docker Containers Everywhere we have added a new AEM 6.5 Bundle image.

Following is the package map to docker tag relationship, Docker tags conventions is {verison}-{bundle type}, bundle-forms includes all packages that are in bundle.

File Bundle Type
AEM Service Pack bundle
AEM Forms bundle-forms
AEM Backward Compatibility package bundle
ACS Commons Twitter package bundle
ACS Commons Content bundle
ACS Commons All bundle
Netcentric ACL Tools bundle
Netcentric ACL Tools Oak Index bundle
Adobe Vanity URL Servlet bundle
AEM.Design Core bundle
AEM.Design Showcase bundle
Brightcove Integration bundle
Adobe XML Document Services bundle

All packages are aimed at to be the latest version. If you need to know exact versions of a package, please refer to the pipeline for the version of the container you are using, example for AEM 6.5.3.0 Bundle with Forms https://github.com/aem-design/docker-aem/blob/6.5.3.0-bundle-forms/.github/workflows/build.yml

Existing Run Modes

Its recommended to use run-modes to specify different configurations for different target. AEM.Design Support project has a sub-module aemdesign-aem-config that contains reference configs for particular run-modes. Following is the definition of all run-modes, this should be expanded in your tenant codebase when you generate it for your project using archetype.

Run Mode Description
config default config for all instances
config.author author instance with specific author configs
config.author.forms author instance with Adobe Forms configs
config.author.localdev author instance for local development
config.ldap ldap config for all instances
config.publish publish instance with specific author configs
config.publish.forms publish instance with Adobe Forms configs
config.publish.localdev publish on local development

If you would like to provide environment specific configurations our recommendation would be to create individual repos for each configuration set, this will ensure that you do not mix prod and dev configs in one repo.

Running AEM in Docker

To start local author AEM 6.5 instance with SP3 instance on port 4502 with Bundled Packages run the following.

docker run --name author \
-e "TZ=Australia/Sydney" \
-e "AEM_RUNMODE=-Dsling.run.modes=author,crx3,crx3tar,forms,localdev" \
-e "AEM_JVM_OPTS=-server -Xms248m -Xmx1524m -XX:MaxDirectMemorySize=256M -XX:+CMSClassUnloadingEnabled -Djava.awt.headless=true -Dorg.apache.felix.http.host=0.0.0.0 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=58242,suspend=n" \
-p4502:8080 \
-p30303:58242 -d \
aemdesign/aem:6.5.3.0-bundle-forms

Starting local publish AEM 6.5 instance with SP3 on port 4503 is a matter of updating a run mode to publish and updating ports for accessing the service, and you should get the following.

docker run --name publish \
-e "TZ=Australia/Sydney" \
-e "AEM_RUNMODE=-Dsling.run.modes=publish,crx3,crx3tar,forms,localdev" \
-e "AEM_JVM_OPTS=-server -Xms248m -Xmx1524m -XX:MaxDirectMemorySize=256M -XX:+CMSClassUnloadingEnabled -Djava.awt.headless=true -Dorg.apache.felix.http.host=0.0.0.0 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=58242,suspend=n" \
-p4503:8080 \
-p30304:58242 -d \
aemdesign/aem:6.5.3.0-bundle-forms

If you would like to start AEM Bundle version on different port to say run it along existing aem instance all you need to do is change name of your container and its ports like this:

docker run --name author65bundle \
-e "TZ=Australia/Sydney" \
-e "AEM_RUNMODE=-Dsling.run.modes=author,crx3,crx3tar,forms,localdev" \
-e "AEM_JVM_OPTS=-server -Xms248m -Xmx1524m -XX:MaxDirectMemorySize=256M -XX:+CMSClassUnloadingEnabled -Djava.awt.headless=true -Dorg.apache.felix.http.host=0.0.0.0 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=58242,suspend=n" \
-p4565:8080 \
-p30365:58242 -d \
aemdesign/aem:6.5.3.0-bundle-forms

To start local demo AEM 6.4 instance on port 4502 with Bundled Packages run the following:

docker run --name author64 \
-e "TZ=Australia/Sydney" \
-e "AEM_RUNMODE=-Dsling.run.modes=author,crx3,crx3tar,forms,localdev" \
-e "AEM_JVM_OPTS=-server -Xms248m -Xmx1524m -XX:MaxDirectMemorySize=256M -XX:+CMSClassUnloadingEnabled -Djava.awt.headless=true -Dorg.apache.felix.http.host=0.0.0.0 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=58242,suspend=n" \
-p4502:8080 \
-p30303:58242 -d \
aemdesign/aem:6.4.0-bundle-forms

If you want to run a base AEM 6.4instance with Service Pack 8 on port 4502 run the following:

docker run --name author648 \
-e "TZ=Australia/Sydney" \
-e "AEM_RUNMODE=-Dsling.run.modes=author,crx3,crx3tar,forms,localdev" \
-e "AEM_JVM_OPTS=-server -Xms248m -Xmx1524m -XX:MaxDirectMemorySize=256M -XX:+CMSClassUnloadingEnabled -Djava.awt.headless=true -Dorg.apache.felix.http.host=0.0.0.0 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=58242,suspend=n" \
-p4502:8080 \
-p30303:58242 -d \
aemdesign/aem:6.4.8.0

You can checkout all of the available versions of AEM containers in Docker AEM Github repo.

License

You will need a license to activate the instance once it ready as it will prompt you to input your details on License splash screen before you can continue:

AEM License Page

The confirmation screen will show you what version of AEM you are running.

AEM License Page

Additionally, once you log in, you can visit the Product Info console to see AEM version. Your version number will be made up of major AEM version and Service Pack Version. For example, if you choose AEM 6.5 with Service Pack 1 its version will be 6.5.1.0.

Packages

You will notice that your bundle container will come with the latest SP installed and other packages. Each bundle image tag has a corresponding branch in GitHub you can check the .travis.yml file to see which packages are pre-installed.

Thank you

Please checkout the docker hub aemdesign/aem for further details.

If you would like to contribute or fork the code, you can get it on GitHub https://github.com/aem-design/aem.

Bundle version comes with following AEM.Design projects:

Leave a Comment