Building Alfresco Docker Images from Source Code

cancel
Showing results for 
Search instead for 
Did you mean: 

Building Alfresco Docker Images from Source Code

angelborroy
Alfresco Employee
3 1 8,242

Alfresco Docker Images are available in Docker Hub Alfresco account, this is the source for Docker Compose templates and Helm Chars deployments. From these Docker Images, customizations can be added extending the original Docker Images by using specific Dockerfile files.

However, this blog post is describing the process to build Alfresco Docker Images from GitHub source code. This will give you a deeper understanding on the insights of every Alfresco Docker Image available in Docker Hub.

 

COMMUNITY

Following diagram describes all the final and base Docker Images available in the Source Code.

Screenshot 2022-02-11 at 12.18.24.png

 

base-java

https://github.com/Alfresco/alfresco-docker-base-java/blob/master/Dockerfile

This Dockerfile is used as base of every final Docker Image, since it includes the installation of the OS and the JDK. There some options for the OS (Ubuntu, Debian, CentOS and ubi) and also some options for the JDK (java 8 and java 11), however almost every Docker Image in Docker Hub is using as base CentOS 7 and Java 11.

base-tomcat

https://github.com/Alfresco/alfresco-docker-base-tomcat/blob/master/Dockerfile

Both alfresco and share web applications are deployed in Apache Tomcat. This is the image installing the Tomcat software that also provides a multi layer scheme for versions 8, 9 and 10. Mainly, Alfresco Docker Images in Docker Hub, are using Tomcat 9.

base-repo

https://github.com/Alfresco/alfresco-community-repo/blob/master/packaging/docker-alfresco/Dockerfile

Alfresco web application is built in two stages: the first one is the base-repo that includes Alfresco core web application.

repo

https://github.com/Alfresco/acs-community-packaging/blob/master/docker-alfresco/Dockerfile

The final version of the Alfresco Docker Image is built from acs-community-packaging project, that adds some addons and other configuration to the base image.

share

https://github.com/Alfresco/alfresco-community-share/blob/master/packaging/docker/Dockerfile

Share web application is built from base-tomcat, adding deployment artifacts and some configuration files.

search

https://github.com/Alfresco/SearchServices/blob/master/search-services/packaging/src/docker/Dockerfi...

Search Services application is built from base-java, since SOLR is deployed using Jetty instead of Tomcat. Application and configuration files are applied in this Dockerfile to produce the Docker Image.

activemq

https://github.com/Alfresco/alfresco-docker-activemq/blob/master/Dockerfile

Asynchronous Messaging broker, based in Apache ActiveMQ, is built by this Dockerfile. This image also relies on base-java and adds some default configuration to the broker.

transform-core

https://github.com/Alfresco/alfresco-transform-core/blob/master/alfresco-transform-core-aio/alfresco...

Since Transform Engine can be deployed in smaller services (Tika, LibreOffice, ImageMagick and PDFRenderer), the All-In-One Docker Image is built from this Dockerfile. All required software is installed in the image and the Spring Boot application is configured.


ENTERPRISE

When using ACS Enterprise version, the structure is similar to the one existing for Community. However, in this case, the original GitHub projects are private and the Docker Registry is hosted in Quay.io. To use this Enterprise Docker Images, customer credentials are required. Contact with Alfresco Support to get yours.

 

CUSTOM DOCKER IMAGES

However, if you don't want to build Docker Images from scratch or to use default Alfresco Docker Images, you can build your own Docker Images from Alfresco Nexus Repository. Nice sample from this approach is provided by @afaust, available in the GitHub project https://github.com/Acosix/acosix-docker-alfresco

Detailed steps to get ZIP Distribution files from Nexus Repository are described in the different Dockerfiles.

https://github.com/Acosix/acosix-docker-alfresco/blob/master/basic-images/alfresco-repository-java11...

If you're working with the Enterprise Docker Images, this approach to build customized Docker Images from our partner Xenit could help:

https://github.com/xenit-eu/docker-alfresco

 

VIDEO

Check out this video to get some additional details on the process

About the Author
Angel Borroy is Hyland Developer Evangelist. Over the last 15 years, he has been working as a software architect on Java, BPM, document management and electronic signatures. He has been working with Alfresco during the last years to customize several implementations in large organizations and to provide add-ons to the Community based on Record Management and Electronic Signature. He writes (sometimes) on his personal blog http://angelborroy.wordpress.com. He is (proud) member of the Order of the Bee.
1 Comment