Use this information to quickly start up Content Services using Docker Compose. Due to the limited capabilities of Docker Compose, this deployment method is recommended for development and test environments only.
git clone https://github.com/Alfresco/acs-deployment.git cd acs-deployment
Note: Make sure that the following ports are free on your computer: 5432, 8080, 8082, 8083. These ports are set in the
docker-compose.ymlfile - refer to the
Alfresco/acs-deploymentproject README for more information.
Change directory to the location of your
Deploy Content Services, including the repository, Share, Postgres database, Search Services, etc.:
docker-compose -f 6.0.N-docker-compose.yml up
This downloads the images, fetches all the dependencies, creates each container, and then starts the system:
... Creating docker-compose_alfresco-pdf-renderer_1 ... done Creating docker-compose_solr6_1 ... done Creating docker-compose_postgres_1 ... done Creating docker-compose_imagemagick_1 ... done Creating docker-compose_libreoffice_1 ... done Creating docker-compose_share_1 ... done Creating docker-compose_alfresco_1 ... done Attaching to docker-compose_postgres_1, docker-compose_solr6_1, docker-compose_alfresco-pdf-renderer_1, docker-compose_imagemagick_1, docker-compose_alfresco_1, docker-compose_libreoffice_1, docker-compose_share_1 ...
As an alternative, you can also start the containers in the background by running
docker-compose up -d.
Wait for the logs to complete, showing messages:
... alfresco_1 | 2018-08-28 08:40:30,386 INFO [management.subsystems.ChildApplicationContextFactory] [http-nio-8080-exec-10] Starting 'Transformers' subsystem, ID: [Transformers, default] alfresco_1 | 2018-08-28 08:40:30,661 INFO [management.subsystems.ChildApplicationContextFactory] [http-nio-8080-exec-10] Startup of 'Transformers' subsystem, ID: [Transformers, default] complete ...
See Troubleshooting if you encounter errors whilst the system is starting up.
Open your browser and check everything starts up correctly:
Service Endpoint Administration and REST APIs
Search Services administration
If Docker is running on your local machine, the IP address will be just
If you’re using the Docker Toolbox, run the following command to find the IP address:
Log in as the
adminuser. Enter the default administrator password
Check system start up
Use this information to verify that the system started correctly, and to clean up the deployment.
Open a new terminal window.
Change directory to the
docker-composefolder that you created in the deployment steps.
Verify that all the services started correctly.
List the images and additional details:
You should see a list of the services defined in your
Container Repository ... Size -------------------------------------------------------------------------------------------------- docker-compose_alfresco_1 alfresco/alfresco-content-repository ... 1.52 GB docker-compose_alfresco-pdf-renderer_1 alfresco/alfresco-pdf-renderer ... 560 MB docker-compose_postgres_1 postgres ... 312.5 MB docker-compose_imagemagick_1 alfresco/alfresco-imagemagick ... 633 MB docker-compose_share_1 alfresco/alfresco-share ... 785.5 MB docker-compose_libreoffice_1 alfresco/alfresco-libreoffice ... 1.39 GB docker-compose_solr6_1 alfresco/alfresco-search-services ... 1.07 GB ...
List the running containers:
You should see a list of the services defined in the
View the log files for each service
<service-name>, or container
docker-compose logs <service-name> docker container logs <container-name>
For example, to check the logs for Share, run any of the following commands:
docker-compose logs share docker container logs docker-compose_share_1
You can add an optional parameter
<container-name>to display the last 25 lines of the logs for the selected container.
docker-compose logs --tail=25 share docker container logs --tail=25 docker-compose_share_1
Check for a success message:
Successfully retrieved license information from Alfresco.
Once you’ve tested the services, you can clean up the deployment by stopping the running services.
Stop the session by using
CONTROL+Cin the same window as the running services:
^CGracefully stopping... (press Ctrl+C again to force) Stopping docker-compose_share_1 ... done Stopping docker-compose_alfresco_1 ... done Stopping docker-compose_postgres_1 ... done Stopping docker-compose_solr6_1 ... done Stopping docker-compose_alfresco-pdf-renderer_1 ... done Stopping docker-compose_libreoffice_1 ... done Stopping docker-compose_imagemagick_1 ... done
Alternatively, you can open a new terminal window, change directory to the
docker-composefolder, and run:
This stops the running services, as shown in the previous example, and removes them from memory:
Stopping docker-compose_imagemagick_1 ... done ... Removing docker-compose_alfresco-pdf-renderer_1 ... done Removing docker-compose_postgres_1 ... done Removing docker-compose_share_1 ... done Removing docker-compose_solr6_1 ... done Removing docker-compose_imagemagick_1 ... done Removing docker-compose_libreoffice_1 ... done Removing docker-compose_alfresco_1 ... done Removing network docker-compose_default
You can use a few more commands to explore the services when they’re running. Change directory to
docker-composebefore running these:
Stop all the running containers:
Restart the containers (after using the
Starts the containers that were started with
Stop all running containers, and remove them and the network:
docker-compose down [--rmi all]
--rmi alloption also removes the images created by
docker-compose up, and the images used by any service. You can use this, for example, if any containers fail and you need to remove them:
Stopping docker-compose_alfresco_1 ... done ... Removing docker-compose_alfresco_1 ... done ... Removing network docker-compose_default Removing image alfresco/alfresco-content-repository:220.127.116.11 Removing image ...
See the Docker documentation for more on using Docker.
Deployment project in GitHub
See the Alfresco/acs-deployment GitHub project for more details.
- In this project, you’ll find several Docker Compose files. The default
docker-compose.ymlfile contains the latest work-in-progress deployment scripts, and installs the latest development version of Content Services.
- To deploy a specific released version of Content Services, several major.minor Docker Compose files are provided in the
docker-composefolder of the project.
- To modify your development environment, for example to change or mount files in the existing images, you’ll have to create new custom Docker images (recommended approach). The same approach applies if you want to install AMP files into the repository and Share images. See the Customization guidelines for more.
Using one of the Enterprise Compose files in this project deploys the following system:
The Docker Compose file provides some default configuration. This section lists the full set of environment variables exposed by each of the containers in the deployment.
Alfresco Content Repository (alfresco)
|JAVA_TOOL_OPTIONS||Adding this environment variable, allows to set sensitive values (like passwords) that are not passed as arguments to the Java Process.|
|JAVA_OPTS||A set of properties that are picked up by the JVM inside the container. Any Content Services property can be passed to the container using the format
Alfresco Share (share)
|JAVA_OPTS||A set of properties that are picked up by the JVM inside the container|
|REPO_HOST||Share needs to know how to register itself with Alfresco. The default value is
|REPO_PORT||Share needs to know how to register itself with Alfresco. The default value is
Alfresco Search Services (solr6)
|SOLR_ALFRESCO_HOST||Solr needs to know how to register itself with Alfresco. The default value is
|SOLR_ALFRESCO_PORT||Solr needs to know how to register itself with Alfresco. The default value is
|SOLR_SOLR_HOST||Alfresco needs to know how to call solr. The default value is
|SOLR_SOLR_PORT||Alfresco needs to know how to call solr. The default value is
|SOLR_CREATE_ALFRESCO_DEFAULTS||Create the default alfresco and archive cores. The default value is
|SOLR_OPTS||Options to pass when starting the Java process|
|SOLR_HEAP||The Java heap assigned to Solr. The default value is
|SOLR_JAVA_MEM||The exact memory settings for Solr. Note that SOLR_HEAP takes precedence over this. The default value is
|MAX_SOLR_RAM_PERCENTAGE||The percentage of available memory (an integer value) to assign to Solr. Note that SOLR_HEAP and SOLR_JAVA_MEM take precedence over this. The default value is
|SEARCH_LOG_LEVEL||The root logger level (
|ENABLE_SPELLCHECK||Whether spellchecking is enabled or not (
|DISABLE_CASCADE_TRACKING||Whether cascade tracking is enabled or not (
|ALFRESCO_SECURE_COMMS||Whether communication with the repository is secured (
|SOLR_SSL_KEY_STORE||Path to SSL key store. See Alfresco Search Services Docker Compose steps for more details|
|SOLR_SSL_KEY_STORE_PASSWORD||Password for key store. See Alfresco Search Services Docker Compose steps for more details|
|SOLR_SSL_KEY_STORE_TYPE||Key store type. See Alfresco Search Services Docker Compose steps for more details. The default value is
|SOLR_SSL_TRUST_STORE||Path to SSL trust store. See Alfresco Search Services Docker Compose steps for more details|
|SOLR_SSL_TRUST_STORE_PASSWORD||Password for trust store. See Alfresco Search Services Docker Compose steps for more details|
|SOLR_SSL_TRUST_STORE_TYPE||Trust store type. See Alfresco Search Services Docker Compose steps for more details. The default value is
|SOLR_SSL_NEED_CLIENT_AUTH||This variable is used to configure SSL (
|SOLR_SSL_WANT_CLIENT_AUTH||This variable is used to configure SSL (
To customize the Docker Compose deployment, for example applying AMPs, we recommend following the best practice of creating your own custom Docker image(s). The Customization guidelines walks you through this process.
To bring the system down and cleanup the containers run the following command:
If you have issues running
docker-compose upafter deleting a previous Docker Compose cluster, try replacing step 3 in the initial Docker Compose instructions with:
docker-compose down && docker-compose build --no-cache && docker-compose up
Stop the session by using
Remove the containers (using the
docker-compose down --rmi all
Try allocating more memory resources, as advised in
For example, in Docker, change the memory setting in Preferences (or Settings) Resources > Advanced > Memory to at least 8GB. Make sure you restart Docker and wait for the process to finish before continuing.
Go back to step 3 in the initial Docker Compose instructions to start the deployment again.
Note: You’ll need a machine with at least 13GB of memory to distribute among the Docker containers.
The table below shows the location of the Dockerfile for each container used in this deployment.