|
| 1 | +# This docker-compose file will spin up an ACS cluster on a local host or on a server and it requires a minimum of 12GB Memory to distribute among containers. |
| 2 | +# Limit container memory and assign X percentage to JVM. There are couple of ways to allocate JVM Memory for ACS Containers |
| 3 | +# For example: 'JAVA_OPTS: "$JAVA_OPTS -XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"' |
| 4 | +# See Oracle docs (https://docs.oracle.com/javase/9/gctuning/parallel-collector1.htm#JSGCT-GUID-CAB83393-3438-44ED-98F0-D15641B43C7D). |
| 5 | +# If the container memory is not explicitly set then the flags above will set the max heap default to 1/4 of the container's memory, which may not be ideal. |
| 6 | +# For performance tuning, assign the container memory and give a percentage of it to the JVM. |
| 7 | + |
| 8 | +# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose |
| 9 | +version: "2" |
| 10 | + |
| 11 | +services: |
| 12 | + alfresco: |
| 13 | + image: alfresco/alfresco-content-repository-community:7.2.0 |
| 14 | + mem_limit: 1600m |
| 15 | + environment: |
| 16 | + JAVA_TOOL_OPTIONS: " |
| 17 | + -Dencryption.keystore.type=JCEKS |
| 18 | + -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding |
| 19 | + -Dencryption.keyAlgorithm=DESede |
| 20 | + -Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore |
| 21 | + -Dmetadata-keystore.password=mp6yc0UD9e |
| 22 | + -Dmetadata-keystore.aliases=metadata |
| 23 | + -Dmetadata-keystore.metadata.password=oKIWzVdEdA |
| 24 | + -Dmetadata-keystore.metadata.algorithm=DESede |
| 25 | + " |
| 26 | + JAVA_OPTS: " |
| 27 | + -Ddb.driver=org.postgresql.Driver |
| 28 | + -Ddb.username=alfresco |
| 29 | + -Ddb.password=alfresco |
| 30 | + -Ddb.url=jdbc:postgresql://postgres:5432/alfresco |
| 31 | + -Dsolr.host=solr6 |
| 32 | + -Dsolr.port=8983 |
| 33 | + -Dsolr.http.connection.timeout=1000 |
| 34 | + -Dsolr.secureComms=secret |
| 35 | + -Dsolr.sharedSecret=secret |
| 36 | + -Dsolr.base.url=/solr |
| 37 | + -Dindex.subsystem.name=solr6 |
| 38 | + -Dshare.host=127.0.0.1 |
| 39 | + -Dshare.port=8080 |
| 40 | + -Dalfresco.host=localhost |
| 41 | + -Dalfresco.port=8080 |
| 42 | + -Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos |
| 43 | + -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" |
| 44 | + -Ddeployment.method=DOCKER_COMPOSE |
| 45 | + -DlocalTransform.core-aio.url=http://transform-core-aio:8090/ |
| 46 | + -Dcsrf.filter.enabled=false |
| 47 | + -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80 |
| 48 | + " |
| 49 | + |
| 50 | + transform-core-aio: |
| 51 | + image: alfresco/alfresco-transform-core-aio:2.5.7 |
| 52 | + mem_limit: 1536m |
| 53 | + environment: |
| 54 | + JAVA_OPTS: " -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80" |
| 55 | + ports: |
| 56 | + - "8090:8090" |
| 57 | + |
| 58 | + share: |
| 59 | + image: alfresco/alfresco-share:7.2.0 |
| 60 | + mem_limit: 1g |
| 61 | + environment: |
| 62 | + REPO_HOST: "alfresco" |
| 63 | + REPO_PORT: "8080" |
| 64 | + JAVA_OPTS: " |
| 65 | + -XX:MinRAMPercentage=50 |
| 66 | + -XX:MaxRAMPercentage=80 |
| 67 | + -Dalfresco.host=localhost |
| 68 | + -Dalfresco.port=8080 |
| 69 | + -Dalfresco.context=alfresco |
| 70 | + -Dalfresco.protocol=http |
| 71 | + " |
| 72 | + |
| 73 | + postgres: |
| 74 | + image: postgres:13.3 |
| 75 | + mem_limit: 512m |
| 76 | + environment: |
| 77 | + - POSTGRES_PASSWORD=alfresco |
| 78 | + - POSTGRES_USER=alfresco |
| 79 | + - POSTGRES_DB=alfresco |
| 80 | + command: postgres -c max_connections=300 -c log_min_messages=LOG |
| 81 | + ports: |
| 82 | + - "5432:5432" |
| 83 | + |
| 84 | + solr6: |
| 85 | + image: alfresco/alfresco-search-services:2.0.3 |
| 86 | + mem_limit: 2g |
| 87 | + environment: |
| 88 | + # Solr needs to know how to register itself with Alfresco |
| 89 | + SOLR_ALFRESCO_HOST: "alfresco" |
| 90 | + SOLR_ALFRESCO_PORT: "8080" |
| 91 | + # Alfresco needs to know how to call solr |
| 92 | + SOLR_SOLR_HOST: "solr6" |
| 93 | + SOLR_SOLR_PORT: "8983" |
| 94 | + # Create the default alfresco and archive cores |
| 95 | + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" |
| 96 | + # HTTPS or SECRET |
| 97 | + ALFRESCO_SECURE_COMMS: "secret" |
| 98 | + # SHARED SECRET VALUE |
| 99 | + JAVA_TOOL_OPTIONS: " |
| 100 | + -Dalfresco.secureComms.secret=secret |
| 101 | + " |
| 102 | + ports: |
| 103 | + - "8083:8983" # Browser port |
| 104 | + |
| 105 | + activemq: |
| 106 | + image: alfresco/alfresco-activemq:5.16.4-jre11-centos7 |
| 107 | + mem_limit: 1g |
| 108 | + ports: |
| 109 | + - "8161:8161" # Web Console |
| 110 | + - "5672:5672" # AMQP |
| 111 | + - "61616:61616" # OpenWire |
| 112 | + - "61613:61613" # STOMP |
| 113 | + |
| 114 | + proxy: |
| 115 | + image: alfresco/alfresco-acs-nginx:3.2.0 |
| 116 | + mem_limit: 128m |
| 117 | + environment: |
| 118 | + DISABLE_PROMETHEUS: "true" |
| 119 | + DISABLE_SYNCSERVICE: "true" |
| 120 | + DISABLE_ADW: "true" |
| 121 | + depends_on: |
| 122 | + - alfresco |
| 123 | + ports: |
| 124 | + - "8080:8080" |
| 125 | + links: |
| 126 | + - alfresco |
| 127 | + - share |
0 commit comments