cancel
Showing results for 
Search instead for 
Did you mean: 
angelborroy
Community Manager Community Manager
Community Manager

When developing with Alfresco, managing builds and configurations can become complex, especially in containerized environments. Docker Buildx Bake command provides a powerful way to simplify multi-container builds by using a declarative approach. Combined with Make and environment variables, developers can further streamline the process of setting up and deploying an Alfresco environment tailored to their needs.

The Alfresco Dockerfiles Bakery repository on GitHub brings these tools together, making it easier than ever to build, configure, and deploy an Alfresco stack in Docker. In this post, we’ll go over the requirements, setup, and key use cases for this project, plus show how the Makefile and environment variables work with Docker Bake to create a seamless Alfresco deployment experience.

Requirements

To get started with Alfresco Dockerfiles Bakery, ensure your environment includes the following:

  • Docker Buildx: includes the bake command, is essential. Install it by following the Docker Buildx guide
  • Docker CLI: allows interaction with Docker Buildx for creating and managing builds.
  • Make: Make is required to run tasks defined in the Makefile
  • Git: Use Git to clone the Alfresco Dockerfiles Bakery repository
  • Access to Alfresco artifacts in Nexus (community or enterprise editions)

Component Coverage

The bakery supports building images for various Alfresco components:

Content Services (Repository)

  • Enterprise and Community editions
  • Share interface

Search Services

  • Enterprise Search with Live Indexing
  • Community Search Service (Solr-based)

Transform Services

  • Transform Router (ATS)
  • Shared File Store
  • Individual Transform Engines (LibreOffice, ImageMagick, PDF Renderer, Tika)
  • All-in-One Transform Engine

Connectors

  • Microsoft Teams Connector
  • Microsoft 365 Connector

ADF Applications

  • Control Center
  • Digital Workspace

Sync Service

The project uses a hierarchical approach with standardized base images:

  • Java base image (using RockyLinux 9)
  • Tomcat base image (built on top of the Java base)
  • Component-specific images inheriting from these bases

Configuration

  • Configurable registry and namespace
  • Support for multiple platforms/architectures
  • Customizable user/group IDs for security
  • Standardized labeling across all images

Build groups

Pre-defined build groups for different deployment scenarios:

  • enterprise: Full enterprise stack
  • community: Community edition components
  • content_service: Core content services
  • search: Search-related components
  • tengines: Transform engines
  • connectors: Integration connectors

Using the project

To begin, clone the repository and navigate to the project directory:

git clone https://github.com/Alfresco/alfresco-dockerfiles-bakery.git
cd alfresco-dockerfiles-bakery

This project uses docker-bake.hcl to define various build configurations and the Makefile to simplify common tasks:

Use Cases

The combined use of Docker Bake, Make, and environment variables makes Alfresco Dockerfiles Bakery an ideal tool for several scenarios:

  • Simplified Development Setup: Quickly set up a complete Alfresco stack for local development. Using make build with specific environment variables allows developers to match production configurations effortlessly.
  • CI/CD Pipelines: With the declarative setup in docker-bake.hcl and Makefile commands, the project can be seamlessly integrated into CI/CD workflows, such as Jenkins, GitLab CI, or GitHub Actions.
  • Multi-Environment Deployments: By leveraging environment variables, developers can create configurations for multiple environments (e.g., staging, production) without changing the core Docker and Make configurations, making deployment flexible and easy to manage.
  • Reusable Builds: For teams that frequently need specific configurations or versions of Alfresco, using Make and Bake together allows reusable, consistent builds that can be shared across the organization.

The Alfresco Dockerfiles Bakery provides a standardized, maintainable approach to building Docker images for Alfresco products. Its modular design and comprehensive configuration options make it a valuable tool for both development and production deployments of Alfresco solutions.

For the latest updates and detailed documentation, visit the official repository.