302 lines
12 KiB
YAML
302 lines
12 KiB
YAML
# Originally sourced from https://github.com/Alfresco/acs-deployment/blob/4.0.3/docker-compose/docker-compose.yml
|
|
#
|
|
version: "3"
|
|
|
|
services:
|
|
|
|
platform:
|
|
image: quay.io/alfresco/alfresco-governance-repository-enterprise:${ACS_TAG}
|
|
environment:
|
|
JAVA_TOOL_OPTIONS: "
|
|
-Dencryption.keystore.type=JCEKS
|
|
-Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding
|
|
-Dencryption.keyAlgorithm=DESede
|
|
-Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore
|
|
-Dmetadata-keystore.password=mp6yc0UD9e
|
|
-Dmetadata-keystore.aliases=metadata
|
|
-Dmetadata-keystore.metadata.password=oKIWzVdEdA
|
|
-Dmetadata-keystore.metadata.algorithm=DESede
|
|
"
|
|
JAVA_OPTS: "
|
|
-Xms512m -Xmx1g
|
|
-Ddb.driver=org.postgresql.Driver
|
|
-Ddb.username=alfresco
|
|
-Ddb.password=alfresco
|
|
-Ddb.url=jdbc:postgresql://postgres-acs:5432/alfresco
|
|
-Dindex.subsystem.name=solr6
|
|
-Dsolr.host=search
|
|
-Dsolr.secureComms=secret
|
|
-Dsolr.sharedSecret=alfresco-secret
|
|
-Dshare.host=${PROXY_HOST}
|
|
-Dshare.port=${PROXY_PORT}
|
|
-Dshare.protocol=${PROXY_PROTOCOL}
|
|
-Dalfresco.host=${PROXY_HOST}
|
|
-Dalfresco.port=${PROXY_PORT}
|
|
-Dalfresco.protocol=${PROXY_PROTOCOL}
|
|
-Daos.baseUrlOverwrite=${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}/alfresco/aos
|
|
-Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\"
|
|
-Ddeployment.method=DOCKER_COMPOSE
|
|
-Dcsrf.filter.enabled=false
|
|
-Dcors.enabled=false
|
|
-Dtransform.service.enabled=true
|
|
-Dtransform.service.url=http://transform-router:8095
|
|
-Dsfs.url=http://shared-file-store:8099
|
|
-Dlocal.transform.service.enabled=true
|
|
-Dalfresco-pdf-renderer.url=http://transform-engine-aio:8090
|
|
-Djodconverter.url=http://transform-engine-aio:8090
|
|
-Dimg.url=http://transform-engine-aio:8090
|
|
-Dtika.url=http://transform-engine-aio:8090
|
|
-Dtransform.misc.url=http://transform-engine-aio:8090
|
|
-Ddsync.service.uris=${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}/sync
|
|
-Dauthentication.chain=aims:identity-service,builtin:alfrescoNtlm
|
|
-Didentity-service.authentication.defaultAdministratorUserNames=admin.1
|
|
-Didentity-service.auth-server-url=${IDENTITY_SERVICE_PROTOCOL}://${IDENTITY_SERVICE_HOST}:${IDENTITY_SERVICE_PORT}/auth
|
|
-Dsystem.content.eagerOrphanCleanup=true
|
|
-Dsystem.content.orphanProtectDays=0
|
|
-Djodconverter.enabled=false
|
|
"
|
|
depends_on:
|
|
postgres-acs:
|
|
condition: service_started
|
|
activemq:
|
|
condition: service_started
|
|
shared-file-store:
|
|
condition: service_started
|
|
identity:
|
|
condition: service_healthy
|
|
volumes:
|
|
- "$ALFRESCO_LICENSE_DIR/acs:/usr/local/tomcat/shared/classes/alfresco/extension/license:ro"
|
|
- acsbin-volume:/usr/local/tomcat/alf_data:rw
|
|
|
|
transform-router:
|
|
image: quay.io/alfresco/alfresco-transform-router:${ATR_TAG}
|
|
environment:
|
|
ACTIVEMQ_URL: "nio://activemq:61616"
|
|
CORE_AIO_URL : "http://transform-core-aio:8090"
|
|
FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file"
|
|
depends_on:
|
|
- activemq
|
|
- shared-file-store
|
|
|
|
transform-core-aio:
|
|
image: alfresco/alfresco-transform-core-aio:${ATE_AIO_TAG}
|
|
environment:
|
|
ACTIVEMQ_URL: "nio://activemq:61616"
|
|
FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file"
|
|
depends_on:
|
|
- activemq
|
|
- shared-file-store
|
|
|
|
shared-file-store:
|
|
image: quay.io/alfresco/alfresco-shared-file-store:${ASFS_TAG}
|
|
volumes:
|
|
- shared-file-store-volume:/tmp/Alfresco/sfs
|
|
|
|
share:
|
|
image: quay.io/alfresco/alfresco-governance-share-enterprise:${ACS_SHARE_TAG}
|
|
environment:
|
|
REPO_HOST: "platform"
|
|
CSRF_FILTER_REFERER: "${PROXY_PROTOCOL}://${PROXY_HOST}(:${PROXY_PORT})?/?.*"
|
|
CSRF_FILTER_ORIGIN: "${PROXY_PROTOCOL}://${PROXY_HOST}(:${PROXY_PORT})?"
|
|
JAVA_OPTS: "
|
|
-Dshare.host=${PROXY_HOST}
|
|
-Dshare.port=${PROXY_PORT}
|
|
-Dshare.protocol=${PROXY_PROTOCOL}
|
|
-Dalfresco.host=${PROXY_HOST}
|
|
-Dalfresco.port=${PROXY_PORT}
|
|
-Dalfresco.protocol=${PROXY_PROTOCOL}
|
|
-Daims.enabled=true
|
|
-Daims.realm=alfresco
|
|
-Daims.resource=acs-share
|
|
-Daims.authServerUrl=${IDENTITY_SERVICE_PROTOCOL}://${IDENTITY_SERVICE_HOST}:${IDENTITY_SERVICE_PORT}/auth
|
|
-Daims.sslRequired=none
|
|
-Daims.publicClient=true
|
|
-Daims.autodetectBearerOnly=true
|
|
-Daims.alwaysRefreshToken=true
|
|
-Daims.principalAttribute=preferred_username
|
|
-Daims.enableBasicAuth=true
|
|
"
|
|
|
|
postgres-acs:
|
|
image: postgres:${POSTGRES_TAG}
|
|
environment:
|
|
POSTGRES_PASSWORD: alfresco
|
|
POSTGRES_USER: alfresco
|
|
POSTGRES_DB: alfresco
|
|
command: postgres -c max_connections=300 -c log_min_messages=LOG
|
|
volumes:
|
|
- acsdb-volume:/var/lib/postgresql/data:rw
|
|
|
|
search:
|
|
image: alfresco/alfresco-search-services:${ASIE_TAG}
|
|
environment:
|
|
SOLR_ALFRESCO_HOST: platform
|
|
SOLR_SOLR_HOST: search
|
|
SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive
|
|
ALFRESCO_SECURE_COMMS: secret
|
|
JAVA_TOOL_OPTIONS: "
|
|
-Dalfresco.secureComms.secret=alfresco-secret
|
|
"
|
|
healthcheck:
|
|
test: "curl -fsS http://localhost:8983/solr"
|
|
volumes:
|
|
- solrindex-volume:/opt/alfresco-search-services/data:rw
|
|
|
|
activemq:
|
|
image: alfresco/alfresco-activemq:${AAMQ_TAG}
|
|
environment:
|
|
ACTIVEMQ_OPTS_MEMORY: -Xms64m -Xmx256m
|
|
ACTIVEMQ_ADMIN_LOGIN: alfresco
|
|
ACTIVEMQ_ADMIN_PASSWORD: alfresco
|
|
volumes:
|
|
- activemq-volume:/opt/activemq/data:rw
|
|
|
|
sync:
|
|
image: quay.io/alfresco/service-sync:${ALF_SYNC_SERV_TAG}
|
|
environment:
|
|
JAVA_OPTS : "
|
|
-Xms64m -Xmx256m
|
|
-Dsql.db.driver=org.postgresql.Driver
|
|
-Dsql.db.url=jdbc:postgresql://postgres-acs:5432/alfresco
|
|
-Dsql.db.username=alfresco
|
|
-Dsql.db.password=alfresco
|
|
-Dmessaging.broker.host=activemq
|
|
-Drepo.hostname=platform
|
|
-Drepo.port=8080
|
|
-Ddw.server.applicationConnectors[0].type=http
|
|
-Didentity-service.auth-server-url=${IDENTITY_SERVICE_PROTOCOL}://${IDENTITY_SERVICE_HOST}:${IDENTITY_SERVICE_PORT}/auth
|
|
-Didentity-service.resource=acs-sync
|
|
"
|
|
depends_on:
|
|
- postgres-acs
|
|
- activemq
|
|
|
|
digital-workspace:
|
|
image: quay.io/alfresco/alfresco-digital-workspace:${ADW_TAG}
|
|
environment:
|
|
BASE_PATH: ./
|
|
APP_CONFIG_ECM_HOST: "${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}"
|
|
APP_CONFIG_BPM_HOST: "${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}"
|
|
APP_BASE_SHARE_URL: "${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}/workspace/#/preview/s"
|
|
APP_CONFIG_PROVIDER: "ALL"
|
|
APP_CONFIG_PLUGIN_PROCESS_SERVICE: "true"
|
|
#APP_CONFIG_PLUGIN_PROCESS_AUTOMATION: "true"
|
|
APP_CONFIG_AUTH_TYPE: OAUTH
|
|
APP_CONFIG_OAUTH2_HOST: "${IDENTITY_SERVICE_PROTOCOL}://${IDENTITY_SERVICE_HOST}:${IDENTITY_SERVICE_PORT}/auth/realms/alfresco"
|
|
APP_CONFIG_OAUTH2_CLIENTID: alfresco
|
|
APP_CONFIG_OAUTH2_IMPLICIT_FLOW: "true"
|
|
APP_CONFIG_OAUTH2_REDIRECT_LOGIN: "/workspace/"
|
|
APP_CONFIG_OAUTH2_REDIRECT_LOGOUT: "/workspace/logout"
|
|
|
|
activiti-app:
|
|
image: quay.io/alfresco/alfresco-process-services:${APS_TAG}
|
|
environment:
|
|
ACTIVITI_DATASOURCE_USERNAME: alfresco
|
|
ACTIVITI_DATASOURCE_PASSWORD: alfresco
|
|
ACTIVITI_DATASOURCE_DRIVER: org.postgresql.Driver
|
|
ACTIVITI_HIBERNATE_DIALECT: org.hibernate.dialect.PostgreSQLDialect
|
|
ACTIVITI_DATASOURCE_URL: 'jdbc:postgresql://postgres-aps:5432/activiti?characterEncoding=UTF-8'
|
|
IDENTITY_SERVICE_ENABLED: "true"
|
|
IDENTITY_SERVICE_AUTH: ${IDENTITY_SERVICE_PROTOCOL}://${IDENTITY_SERVICE_HOST}:${IDENTITY_SERVICE_PORT}/auth
|
|
IDENTITY_SERVICE_CONTENT_SSO_REDIRECT_URI: ${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}/activiti-app/app/rest/integration/sso/confirm-auth-request
|
|
JAVA_OPTS: "-Xms128m -Xmx256m"
|
|
depends_on:
|
|
- postgres-aps
|
|
volumes:
|
|
- "$ALFRESCO_LICENSE_DIR/aps:/home/alfresco/.activiti/enterprise-license:ro"
|
|
- apsbin-volume:/var/lib/postgresql/data:rw
|
|
|
|
activiti-admin:
|
|
image: quay.io/alfresco/alfresco-process-services-admin:${APS_TAG}
|
|
environment:
|
|
ACTIVITI_ADMIN_DATASOURCE_USERNAME: alfresco
|
|
ACTIVITI_ADMIN_DATASOURCE_PASSWORD: alfresco
|
|
ACTIVITI_ADMIN_DATASOURCE_DRIVER: org.postgresql.Driver
|
|
ACTIVITI_ADMIN_HIBERNATE_DIALECT: org.hibernate.dialect.PostgreSQLDialect
|
|
ACTIVITI_ADMIN_DATASOURCE_URL: 'jdbc:postgresql://postgres-aps-admin:5432/activiti-admin?characterEncoding=UTF-8'
|
|
ACTIVITI_ADMIN_REST_APP_HOST: http://activiti-app
|
|
ACTIVITI_ADMIN_REST_APP_PORT: 8080
|
|
JAVA_OPTS: "-Xms64m -Xmx128m"
|
|
depends_on:
|
|
- postgres-aps-admin
|
|
- activiti-app
|
|
|
|
postgres-aps:
|
|
image: postgres:${POSTGRES_TAG}
|
|
environment:
|
|
POSTGRES_DB: activiti
|
|
POSTGRES_USER: alfresco
|
|
POSTGRES_PASSWORD: alfresco
|
|
command: postgres -c max_connections=300 -c log_min_messages=LOG
|
|
volumes:
|
|
- apsdb-volume:/var/lib/postgresql/data:rw
|
|
|
|
postgres-aps-admin:
|
|
image: postgres:${POSTGRES_TAG}
|
|
environment:
|
|
POSTGRES_DB: activiti-admin
|
|
POSTGRES_USER: alfresco
|
|
POSTGRES_PASSWORD: alfresco
|
|
command: postgres -c max_connections=50 -c log_min_messages=LOG
|
|
volumes:
|
|
- apsadmindb-volume:/var/lib/postgresql/data:rw
|
|
|
|
identity:
|
|
image: alfresco/alfresco-identity-service:${AIS_TAG}
|
|
user: jboss
|
|
environment:
|
|
KEYCLOAK_USER: admin
|
|
KEYCLOAK_PASSWORD: admin
|
|
KEYCLOAK_HOSTNAME: ${IDENTITY_SERVICE_HOST}
|
|
KEYCLOAK_IMPORT: /tmp/keycloak-alfresco-realm.json
|
|
KEYCLOAK_STATISTICS: enabled
|
|
networks:
|
|
default:
|
|
aliases:
|
|
- "${IDENTITY_SERVICE_HOST}"
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080/auth/realms/alfresco"]
|
|
interval: 10s
|
|
timeout: 10s
|
|
# Really long startup times on Windows
|
|
retries: 18
|
|
volumes:
|
|
- ./keycloak-alfresco-realm.json:/tmp/keycloak-alfresco-realm.json:ro
|
|
- keycloak-volume:/opt/jboss/keycloak/standalone/data:rw
|
|
|
|
proxy:
|
|
build: ./nginx-ingress
|
|
image: local/nginx-ingress:acs-sync-share-adw-aps-aims
|
|
ports:
|
|
- 8080:8080
|
|
depends_on:
|
|
- platform
|
|
- sync
|
|
- share
|
|
- digital-workspace
|
|
- activiti-app
|
|
- activiti-admin
|
|
- identity
|
|
|
|
volumes:
|
|
shared-file-store-volume:
|
|
driver_opts:
|
|
type: tmpfs
|
|
device: tmpfs
|
|
acsbin-volume:
|
|
driver: local
|
|
acsdb-volume:
|
|
driver: local
|
|
activemq-volume:
|
|
driver: local
|
|
solrindex-volume:
|
|
driver: local
|
|
apsbin-volume:
|
|
driver: local
|
|
apsdb-volume:
|
|
driver: local
|
|
apsadmindb-volume:
|
|
driver: local
|
|
keycloak-volume:
|
|
driver: local
|