diff --git a/e2e-test/generator-alfresco-docker-compose/README.md b/e2e-test/generator-alfresco-docker-compose/README.md index 516e1e541..e7a0f445f 100644 --- a/e2e-test/generator-alfresco-docker-compose/README.md +++ b/e2e-test/generator-alfresco-docker-compose/README.md @@ -5,7 +5,7 @@ This project generates a collection of Docker Compose Templates to test Reposito * Plain HTTP communications * TLS/SSL Mutual Authentication communications -* Sharding (dynamic) with DB_ID or Explicit Routing +* Sharding (dynamic) with different Sharding Methods * Replication (master/slave) ## Project structure @@ -13,28 +13,30 @@ This project generates a collection of Docker Compose Templates to test Reposito Following templates are provided. ``` -$ tree generators/app/templates/latest -├── .env -├── alfresco -│   ├── Dockerfile -│   └── model -│   ├── sharding-content-model-context.xml -│   └── sharding-content-model.xml -├── docker-compose-ce.yml -├── docker-compose-ee.yml -├── search -│   └── Dockerfile -├── zeppelin -| └── Dockerfile +$ tree generators/app/templates/ +generators/app/templates/ +├── 6.1 +│   ├── docker-compose-ce.yml +│   └── docker-compose-ee.yml +├── 6.2 +│   ├── docker-compose-ce.yml +│   └── docker-compose-ee.yml +├── images +│   ├── alfresco +│   │   ├── Dockerfile +│   │   └── model +│   │   ├── sharding-content-model-context.xml +│   │   └── sharding-content-model.xml +│   ├── search +│   │   └── Dockerfile +│   └── zeppelin +│   └── Dockerfile └── keystores - ├── alfresco - ├── solr - └── zeppelin ``` * `.env` includes default values for Docker Compose environment variables -* `docker-compose-ce.yml` is the base Docker Compose Template for Alfresco Community deployment -* `docker-compose-ee.yml` is the base Docker Compose Template for Alfresco Enterprise deployment +* `docker-compose-ce.yml` is the base Docker Compose Template for Alfresco Community deployment (for ACS 6.2 and ACS 6.1) +* `docker-compose-ee.yml` is the base Docker Compose Template for Alfresco Enterprise deployment (for ACS 6.2 and ACS 6.1) * `alfresco` includes a Dockerfile template to start Alfresco Repository * `model` includes a default content model for Sharding Explicit Routing * `search` includes a Dockerfile template to start Search Services and Insight Engine @@ -58,6 +60,17 @@ $ mkdir my-custom-docker-compose $ yo alfresco-docker-compose ``` +## ACS Version + +Currently supported ACS Version are `6.2` and `6.1` + +This is the first choice to be selected when the generator is executed. +``` +? Which ACS version do you want to use? + 6.1 +❯ 6.2 +``` + ## Community When using Community, some different options can be combined: @@ -66,7 +79,6 @@ When using Community, some different options can be combined: * Use SOLR Replication in Master/Slave mode (only when using http) ``` -? Which Alfresco version do you want to use? latest ? Would you like to use Alfresco enterprise or community? community ? Would you like to use http or https? http ? Would you like to use a SOLR Replication (2 nodes in master-slave)? Yes @@ -76,20 +88,38 @@ When using Community, some different options can be combined: When using Enterprise, some options can be added to Community configuration: -* Use dynamic Sharding with 2 SOLR nodes pre-configured (only when not using SOLR Replication) -* Use Explicit Routing for Shards instead of DB_ID (only when using Sharding) +* Use dynamic Sharding with 2 SOLR nodes pre-configured (every sharding method is supported) * Insight Engine, as Search Services is selected by default * Deploy Zeppelin app to use JDBC Connector to SOLR ``` ? Would you like to use dynamic Sharding (2 SOLR nodes)? Yes -? Would you like to use SOLR Explicit Routing instead of DB_ID for the Shards? Yes +? Which Sharding Method do you want to use? +❯ DB_ID + DB_ID_RANGE + ACL_ID + MOD_ACL_ID + DATE + PROPERTY + LAST_REGISTERED_INDEXING_SHARD + EXPLICIT_ID_FALLBACK_LRIS + EXPLICIT_ID ? Would you like to use Insight Engine instead of Search Services? Yes ? Would you like to deploy Zeppelin? Yes ``` -## Using Explicit Routing feature +## Sharding methods default parameters +**DB_ID_RANGE** +Shard range is 0-800 for the instance 0 and 801-40000 for the instance 1. + +**DATE** +Shard property is `cm:created` and grouping is set to 2. + +**PROPERTY** +Shard property is `shard:shardId`, belonging to a custom model deployed in the template. + +**EXPLICIT_ID** and **EXPLICIT_ID_FALLBACK_LRIS** Custom content model is deployed to provide a property, named `shard:shardId`, holding the Shard Number (0, 1) where the content is indexed. ## Configuration catalog @@ -116,20 +146,19 @@ Both `community` and `enterprise` ACS deployments can be used with the same opti Default values for options can be specified in the command line, using a `--name=value` pattern. When an options is specified in the command line, the question is not prompted to the user, so you can generate a Docker Compose template with no user interaction. ``` -$ yo alfresco-docker-compose --acsVersion=latest --alfrescoVersion=community --httpMode=http --clustering=true +$ yo alfresco-docker-compose --acsVersion=6.2 --alfrescoVersion=community --httpMode=http --clustering=true ``` **Parameter names reference** -`--acsVersion`: default latest, but could be set to e.g. 6.1.0.5 +`--acsVersion`: default 6.2, but could be set to 6.1 `--alfrescoVersion`: community or enterprise `--httpMode`: http or https `--clustering`: true or false `--insightEngine`: true or false `--zeppelin`: true or false `--sharding`: true or false -`--explicitRouting`: true or false - +`--shardingMethod`: DB_ID, DB_ID_RANGE, ACL_ID, MOD_ACL_ID, DATE, PROPERTY, LAST_REGISTERED_INDEXING_SHARD, EXPLICIT_ID_FALLBACK_LRIS, EXPLICIT_ID ## Using Docker Compose diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js index d8975741a..d8c9d6007 100644 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js @@ -22,10 +22,11 @@ module.exports = class extends Generator { const prompts = [ { - type: 'input', + type: 'list', name: 'acsVersion', - message: 'Which Alfresco version do you want to use?', - default: 'latest' + message: 'Which ACS version do you want to use?', + choices: [ "6.1", "6.2" ], + default: '6.2' }, { type: 'list', @@ -58,10 +59,21 @@ module.exports = class extends Generator { }, { whenFunction: response => response.alfrescoVersion == 'enterprise' && response.sharding, - type: 'confirm', - name: 'explicitRouting', - message: 'Would you like to use SOLR Explicit Routing instead of DB_ID for the Shards?', - default: false + type: 'list', + name: 'shardingMethod', + message: 'Which Sharding Method do you want to use?', + choices: [ + "DB_ID", + "DB_ID_RANGE", + "ACL_ID", + "MOD_ACL_ID", + "DATE", + "PROPERTY", + "LAST_REGISTERED_INDEXING_SHARD", + "EXPLICIT_ID_FALLBACK_LRIS", + "EXPLICIT_ID" + ], + default: 'DB_ID' }, { whenFunction: response => response.alfrescoVersion == 'enterprise', @@ -104,25 +116,22 @@ module.exports = class extends Generator { // Generate boilerplate from "templates" folder writing() { - // TODO: Add support for other versions of ACS. - // e.g. Using something like: - // if (this.props.acsVersion.startsWith('6.0')) { - var templateDirectory = 'latest'; + var dockerComposeTemplateDirectory = '6.2'; + if (this.props.acsVersion.startsWith('6.1')) { + dockerComposeTemplateDirectory = '6.1'; + } // Docker Compose environment variables values - this.fs.copyTpl( - this.templatePath(templateDirectory + '/.env'), - this.destinationPath('.env'), - { - acsTag: this.props.acsVersion - } + this.fs.copy( + this.templatePath(dockerComposeTemplateDirectory + '/.env'), + this.destinationPath('.env') ) // Base Docker Compose Template const dockerComposeTemplate = (this.props.alfrescoVersion == 'community' ? - templateDirectory + '/docker-compose-ce.yml' : - templateDirectory + '/docker-compose-ee.yml'); + dockerComposeTemplateDirectory + '/docker-compose-ce.yml' : + dockerComposeTemplateDirectory + '/docker-compose-ee.yml'); // Repository Docker Image name const acsImageName = @@ -155,13 +164,15 @@ module.exports = class extends Generator { searchPath: searchBasePath, zeppelin: (this.props.zeppelin ? "true" : "false"), sharding: (this.props.sharding ? "true" : "false"), - explicitRouting: (this.props.explicitRouting ? "true" : "false") + shardingMethod: (this.props.shardingMethod) } ); + var imagesDirectory = 'images'; + // Copy Docker Image for Repository applying configuration this.fs.copyTpl( - this.templatePath(templateDirectory + '/alfresco/Dockerfile'), + this.templatePath(imagesDirectory + '/alfresco/Dockerfile'), this.destinationPath('alfresco/Dockerfile'), { acsImage: acsImageName, @@ -170,14 +181,14 @@ module.exports = class extends Generator { ); if (this.props.sharding) { this.fs.copy( - this.templatePath(templateDirectory + '/alfresco/model'), + this.templatePath(imagesDirectory + '/alfresco/model'), this.destinationPath('alfresco/model') ) } // Copy Docker Image for Search applying configuration this.fs.copyTpl( - this.templatePath(templateDirectory + '/search'), + this.templatePath(imagesDirectory + '/search'), this.destinationPath('search'), { searchImage: searchImageName, @@ -188,7 +199,7 @@ module.exports = class extends Generator { // Copy Docker Image for Zeppelin applying configuration if (this.props.zeppelin) { this.fs.copy( - this.templatePath(templateDirectory + '/zeppelin'), + this.templatePath(imagesDirectory + '/zeppelin'), this.destinationPath('zeppelin') ); } diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/.env similarity index 86% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/.env index 471b79582..c95352d50 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/.env @@ -1,4 +1,5 @@ -ALFRESCO_TAG=<%=acsTag%> +ALFRESCO_TAG=6.1.0.5 +ALFRESCO_CE_TAG=6.1.2-ga SHARE_TAG=6.1.0 POSTGRES_TAG=10.1 TRANSFORM_ROUTER_TAG=1.0.1 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml similarity index 99% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml index e48b8849a..663ce09bf 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml @@ -7,7 +7,7 @@ services: build: context: ./alfresco args: - ALFRESCO_TAG: ${ALFRESCO_TAG} + ALFRESCO_TAG: ${ALFRESCO_CE_TAG} SOLR_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> TRUSTSTORE_TYPE: JCEKS TRUSTSTORE_PASS: kT9X6oe68t diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml similarity index 91% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml index 7ad1acce0..8c9d074f7 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml @@ -62,8 +62,13 @@ services: ENABLE_SLAVE: "false" <% } %> <% if (sharding == 'true') { %> ENABLE_SHARDING: "true" NUM_SHARDS: "2" - SHARD_ID: "0" <% } %> <% if (explicitRouting == 'true') { %> - EXPLICIT_ROUTING_SHARDING: "true" <% } %> + SHARD_ID: "0" <% if (shardingMethod == 'DB_ID_RANGE') { %> + SHARD_RANGE: "0-800" <% } %> <% if (shardingMethod == 'DATE') { %> + SHARD_KEY: "cm:created" + SHARD_DATE_GROUPING: "2" <% } %> <% if (shardingMethod == 'PROPERTY') { %> + SHARD_KEY: "shard:shardId" <% } %> <% if (shardingMethod == 'EXPLICIT_ID' || shardingMethod == 'EXPLICIT_ID_FALLBACK_LRIS') { %> + SHARD_KEY: "shard:shardId" <% } %> + SHARDING_METHOD: <%=shardingMethod%> <% } %> mem_limit: 1200m environment: #Solr needs to know how to register itself with Alfresco @@ -114,8 +119,13 @@ services: MASTER_HOST: solr6 <% } %> <% if (sharding == 'true') { %> ENABLE_SHARDING: "true" NUM_SHARDS: "2" - SHARD_ID: "1" <% } %> <% if (explicitRouting == 'true') { %> - EXPLICIT_ROUTING_SHARDING: "true" <% } %> + SHARD_ID: "1" <% if (shardingMethod == 'DB_ID_RANGE') { %> + SHARD_RANGE: "801-40000" <% } %> <% if (shardingMethod == 'DATE') { %> + SHARD_KEY: "cm:created" + SHARD_DATE_GROUPING: "2" <% } %> <% if (shardingMethod == 'PROPERTY') { %> + SHARD_KEY: "shard:shardId" <% } %> <% if (shardingMethod == 'EXPLICIT_ID' || shardingMethod == 'EXPLICIT_ID_FALLBACK_LRIS') { %> + SHARD_KEY: "shard:shardId" <% } %> + SHARDING_METHOD: <%=shardingMethod%> <% } %> mem_limit: 1200m environment: #Solr needs to know how to register itself with Alfresco @@ -295,7 +305,7 @@ services: BASEPATH: ./ proxy: - image: quay.io/alfresco/alfresco-acs-nginx:${ACS_NGINX_TAG} + image: alfresco/alfresco-acs-nginx:${ACS_NGINX_TAG} mem_limit: 128m depends_on: - alfresco @@ -311,4 +321,4 @@ volumes: shared-file-store-volume: driver_opts: type: tmpfs - device: tmpfs + device: tmpfs \ No newline at end of file diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/.env b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/.env new file mode 100755 index 000000000..d26aa5b30 --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/.env @@ -0,0 +1,16 @@ +ALFRESCO_TAG=latest +SHARE_TAG=6.1.0-RC3 +POSTGRES_TAG=10.9 +TRANSFORM_ROUTER_TAG=1.1.0-EA2 +PDF_RENDERER_TAG=2.1.0-EA4 +IMAGE_MAGICK_TAG=2.1.0-EA4 +LIBREOFFICE_TAG=2.1.0-EA4 +TIKA_TAG=2.1.0-EA4 +TRANSFORM_MISC_TAG=2.1.0-EA4 +SHARED_FILE_STORE_TAG=0.5.3 +ACTIVE_MQ_TAG=5.15.8 +DIGITAL_WORKSPACE_TAG=1.1.0 +ACS_NGINX_TAG=3.0.1 +ACS_COMMUNITY_NGINX_TAG=1.0.0 +SEARCH_TAG=latest +ZEPPELIN_TAG=latest diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml new file mode 100755 index 000000000..903170400 --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml @@ -0,0 +1,224 @@ +# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose +version: "2" + +services: + + alfresco: + build: + context: ./alfresco + args: + ALFRESCO_TAG: ${ALFRESCO_TAG} + SOLR_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + TRUSTSTORE_PASS: kT9X6oe68t + KEYSTORE_TYPE: JCEKS + KEYSTORE_PASS: kT9X6oe68t <% } %> + mem_limit: 1800m + environment: + JAVA_OPTS : " + -Ddb.driver=org.postgresql.Driver + -Ddb.username=alfresco + -Ddb.password=alfresco + -Ddb.url=jdbc:postgresql://postgres:5432/alfresco + -Dsolr.host=<%=searchSolrHost%> + -Dsolr.port.ssl=8983 + -Dsolr.secureComms=<%=secureComms%> + -Dsolr.base.url=/solr + -Dindex.subsystem.name=solr6 + -Dshare.host=localhost + -Dalfresco.port=8082 + -Daos.baseUrlOverwrite=http://localhost:8082/alfresco/aos + -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" + -Ddeployment.method=DOCKER_COMPOSE + + -Dlocal.transform.service.enabled=true + -DlocalTransform.pdfrenderer.url=http://alfresco-pdf-renderer:8090/ + -DlocalTransform.imagemagick.url=http://imagemagick:8090/ + -DlocalTransform.libreoffice.url=http://libreoffice:8090/ + -DlocalTransform.tika.url=http://tika:8090/ + -DlocalTransform.misc.url=http://transform-misc:8090/ + + -Dlegacy.transform.service.enabled=true + -Dalfresco-pdf-renderer.url=http://alfresco-pdf-renderer:8090/ + -Djodconverter.url=http://libreoffice:8090/ + -Dimg.url=http://imagemagick:8090/ + -Dtika.url=http://tika:8090/ + -Dtransform.misc.url=http://transform-misc:8090/ + + -Dcsrf.filter.enabled=false + -Dalfresco.restApi.basicAuthScheme=true + -Xms1500m -Xmx1500m + " <% if (httpMode == 'https') { %> + ports: + - 8443:8443 + volumes: + - ./keystores/alfresco:/usr/local/tomcat/alf_data/keystore <% } %> + + solr6: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6 + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS <% } %> <% if (replication == 'true') { %> + ENABLE_MASTER: "true" + ENABLE_SLAVE: "false" <% } %> + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + " <% } %> + ports: + - 8083:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + + <% if (replication == 'true') { %> + solr6secondary: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6secondary + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS <% } %> <% if (replication == 'true') { %> + ENABLE_MASTER: "true" + ENABLE_SLAVE: "false" + MASTER_HOST: solr6 <% } %> + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6secondary" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + " <% } %> + ports: + - 8084:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + <% } %> + + alfresco-pdf-renderer: + image: alfresco/alfresco-pdf-renderer:${PDF_RENDERER_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ports: + - 8090:8090 + + imagemagick: + image: alfresco/alfresco-imagemagick:${IMAGE_MAGICK_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ports: + - 8091:8090 + + libreoffice: + image: alfresco/alfresco-libreoffice:${LIBREOFFICE_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ports: + - 8092:8090 + + tika: + image: alfresco/alfresco-tika:${TIKA_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ports: + - 8093:8090 + + transform-misc: + image: alfresco/alfresco-transform-misc:${TRANSFORM_MISC_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ports: + - 8094:8090 + + share: + image: alfresco/alfresco-share:${SHARE_TAG} + mem_limit: 1g + environment: + REPO_HOST: "alfresco" + REPO_PORT: "8080" + JAVA_OPTS: " + -Xms500m + -Xmx500m + -Dalfresco.host=localhost + -Dalfresco.port=8080 + -Dalfresco.context=alfresco + -Dalfresco.protocol=http + " + + postgres: + image: postgres:${POSTGRES_TAG} + mem_limit: 512m + environment: + - POSTGRES_PASSWORD=alfresco + - POSTGRES_USER=alfresco + - POSTGRES_DB=alfresco + command: postgres -c max_connections=300 -c log_min_messages=LOG + ports: + - 5432:5432 + + activemq: + image: alfresco/alfresco-activemq:${ACTIVE_MQ_TAG} + mem_limit: 512m + ports: + - 8161:8161 # Web Console + - 5672:5672 # AMQP + - 61616:61616 # OpenWire + - 61613:61613 # STOMP + + proxy: + image: alfresco/acs-community-ngnix:${ACS_COMMUNITY_NGINX_TAG} + mem_limit: 128m + depends_on: + - alfresco + ports: + - 8080:8080 + links: + - alfresco + - share \ No newline at end of file diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml new file mode 100755 index 000000000..384cfa9a2 --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml @@ -0,0 +1,347 @@ +# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose +version: "2" + +services: + alfresco: + build: + context: ./alfresco + args: + ALFRESCO_TAG: ${ALFRESCO_TAG} + SOLR_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + TRUSTSTORE_PASS: kT9X6oe68t + KEYSTORE_TYPE: JCEKS + KEYSTORE_PASS: kT9X6oe68t <% } %> + mem_limit: 1800m + environment: + JAVA_OPTS: " + -Ddb.driver=org.postgresql.Driver + -Ddb.username=alfresco + -Ddb.password=alfresco + -Ddb.url=jdbc:postgresql://postgres:5432/alfresco + -Dsolr.host=<%=searchSolrHost%> + -Dsolr.port.ssl=8983 + -Dsolr.secureComms=<%=secureComms%> + -Dsolr.base.url=/solr <% if (sharding == 'true') { %> + -Dsolr.useDynamicShardRegistration=true <% } %> + -Dindex.subsystem.name=solr6 + + -Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos + -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" + -Ddeployment.method=DOCKER_COMPOSE + + -Dtransform.service.enabled=true + -Dtransform.service.url=http://transform-router:8095 + -Dsfs.url=http://shared-file-store:8099/ + + -Dlocal.transform.service.enabled=true + -DlocalTransform.pdfrenderer.url=http://alfresco-pdf-renderer:8090/ + -DlocalTransform.imagemagick.url=http://imagemagick:8090/ + -DlocalTransform.libreoffice.url=http://libreoffice:8090/ + -DlocalTransform.tika.url=http://tika:8090/ + -DlocalTransform.misc.url=http://transform-misc:8090/ + + -Dlegacy.transform.service.enabled=true + -Dalfresco-pdf-renderer.url=http://alfresco-pdf-renderer:8090/ + -Djodconverter.url=http://libreoffice:8090/ + -Dimg.url=http://imagemagick:8090/ + -Dtika.url=http://tika:8090/ + -Dtransform.misc.url=http://transform-misc:8090/ + + -Dcsrf.filter.enabled=false + -Dalfresco.restApi.basicAuthScheme=true + -Xms1500m -Xmx1500m + " <% if (httpMode == 'https') { %> + ports: + - 8443:8443 + volumes: + - ./keystores/alfresco:/usr/local/tomcat/alf_data/keystore <% } %> + + solr6: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6 + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS <% } %> <% if (replication == 'true') { %> + ENABLE_MASTER: "true" + ENABLE_SLAVE: "false" <% } %> <% if (sharding == 'true') { %> + ENABLE_SHARDING: "true" + NUM_SHARDS: "2" + SHARD_ID: "0" <% if (shardingMethod == 'DB_ID_RANGE') { %> + SHARD_RANGE: "0-800" <% } %> <% if (shardingMethod == 'DATE') { %> + SHARD_KEY: "cm:created" + SHARD_DATE_GROUPING: "2" <% } %> <% if (shardingMethod == 'PROPERTY') { %> + SHARD_KEY: "shard:shardId" <% } %> <% if (shardingMethod == 'EXPLICIT_ID' || shardingMethod == 'EXPLICIT_ID_FALLBACK_LRIS') { %> + SHARD_KEY: "shard:shardId" <% } %> + SHARDING_METHOD: <%=shardingMethod%> <% } %> + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" <% if (sharding == 'true') { %> + SOLR_SSL_CLIENT_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_CLIENT_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_CLIENT_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_TRUST_STORE_TYPE: "JCEKS" <% } %> + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + " <% } %> + ports: + - 8083:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + + <% if (sharding == 'true' || replication == 'true') { %> + solr6secondary: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6secondary + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS <% } %> <% if (replication == 'true') { %> + ENABLE_MASTER: "true" + ENABLE_SLAVE: "false" + MASTER_HOST: solr6 <% } %> <% if (sharding == 'true') { %> + ENABLE_SHARDING: "true" + NUM_SHARDS: "2" + SHARD_ID: "1" <% if (shardingMethod == 'DB_ID_RANGE') { %> + SHARD_RANGE: "801-40000" <% } %> <% if (shardingMethod == 'DATE') { %> + SHARD_KEY: "cm:created" + SHARD_DATE_GROUPING: "2" <% } %> <% if (shardingMethod == 'PROPERTY') { %> + SHARD_KEY: "shard:shardId" <% } %> <% if (shardingMethod == 'EXPLICIT_ID' || shardingMethod == 'EXPLICIT_ID_FALLBACK_LRIS') { %> + SHARD_KEY: "shard:shardId" <% } %> + SHARDING_METHOD: <%=shardingMethod%> <% } %> + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6secondary" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" <% if (sharding == 'true') { %> + SOLR_SSL_CLIENT_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_CLIENT_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_CLIENT_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_TRUST_STORE_TYPE: "JCEKS" <% } %> + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + " <% } %> + ports: + - 8084:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + <% } %> + + <% if (zeppelin == 'true') { %> + zeppelin: + build: + context: ./zeppelin + args: + ZEPPELIN_TAG: ${ZEPPELIN_TAG} + ALFRESCO_COMMS: <%=secureComms%> + mem_limit: 768m + environment: <% if (httpMode == 'https') { %> + REPO_PROTOCOL: "https" <% } %> + REPO_HOST: "alfresco" + REPO_PORT: "<%=alfrescoPort%>" <% if (httpMode == 'https') { %> + JAVA_OPTS: " + -Dalfresco.enable.ssl=true + -Dsolr.ssl.checkPeerName=false + -Djavax.net.ssl.keyStore=/zeppelin/keystore/ssl.repo.client.keystore + -Djavax.net.ssl.keyStorePassword=kT9X6oe68t + -Djavax.net.ssl.keyStoreType=JCEKS + -Djavax.net.ssl.trustStore=/zeppelin/keystore/ssl.repo.client.truststore + -Djavax.net.ssl.trustStorePassword=kT9X6oe68t + -Djavax.net.ssl.trustStoreType=JCEKS + " <% } %> + ports: + - 9090:9090 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/zeppelin:/zeppelin/keystore <% } %> + <% } %> + + transform-router: + mem_limit: 512m + image: quay.io/alfresco/alfresco-transform-router:${TRANSFORM_ROUTER_TAG} + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + IMAGEMAGICK_URL: "http://imagemagick:8090" + PDF_RENDERER_URL : "http://alfresco-pdf-renderer:8090" + LIBREOFFICE_URL : "http://libreoffice:8090" + TIKA_URL : "http://tika:8090" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8095:8095 + links: + - activemq + + alfresco-pdf-renderer: + image: alfresco/alfresco-pdf-renderer:${PDF_RENDERER_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8090:8090 + links: + - activemq + + imagemagick: + image: alfresco/alfresco-imagemagick:${IMAGE_MAGICK_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8091:8090 + links: + - activemq + + libreoffice: + image: alfresco/alfresco-libreoffice:${LIBREOFFICE_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8092:8090 + links: + - activemq + + tika: + image: alfresco/alfresco-tika:${TIKA_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8093:8090 + links: + - activemq + + transform-misc: + image: alfresco/alfresco-transform-misc:${TRANSFORM_MISC_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8094:8090 + links: + - activemq + + shared-file-store: + image: alfresco/alfresco-shared-file-store:${SHARED_FILE_STORE_TAG} + mem_limit: 512m + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + scheduler.content.age.millis: 86400000 + scheduler.cleanup.interval: 86400000 + ports: + - 8099:8099 + volumes: + - shared-file-store-volume:/tmp/Alfresco/sfs + + share: + image: alfresco/alfresco-share:${SHARE_TAG} + mem_limit: 1g + environment: + REPO_HOST: "alfresco" + REPO_PORT: "8080" + JAVA_OPTS: " + -Xms500m + -Xmx500m + -Dalfresco.host=localhost + -Dalfresco.port=8080 + -Dalfresco.context=alfresco + -Dalfresco.protocol=http + " + + postgres: + image: postgres:${POSTGRES_TAG} + mem_limit: 512m + environment: + - POSTGRES_PASSWORD=alfresco + - POSTGRES_USER=alfresco + - POSTGRES_DB=alfresco + command: postgres -c max_connections=300 -c log_min_messages=LOG + ports: + - 5432:5432 + + activemq: + image: alfresco/alfresco-activemq:${ACTIVE_MQ_TAG} + mem_limit: 512m + ports: + - 8161:8161 # Web Console + - 5672:5672 # AMQP + - 61616:61616 # OpenWire + - 61613:61613 # STOMP + + digital-workspace: + image: quay.io/alfresco/alfresco-digital-workspace:${DIGITAL_WORKSPACE_TAG} + mem_limit: 128m + environment: + BASEPATH: ./ + + proxy: + image: alfresco/alfresco-acs-nginx:${ACS_NGINX_TAG} + mem_limit: 128m + depends_on: + - alfresco + - digital-workspace + ports: + - 8080:8080 + links: + - digital-workspace + - alfresco + - share + +volumes: + shared-file-store-volume: + driver_opts: + type: tmpfs + device: tmpfs diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/alfresco/Dockerfile b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/Dockerfile similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/alfresco/Dockerfile rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/Dockerfile diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/alfresco/model/sharding-content-model-context.xml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/model/sharding-content-model-context.xml similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/alfresco/model/sharding-content-model-context.xml rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/model/sharding-content-model-context.xml diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/alfresco/model/sharding-content-model.xml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/model/sharding-content-model.xml similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/alfresco/model/sharding-content-model.xml rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/model/sharding-content-model.xml diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/search/Dockerfile b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile similarity index 72% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/search/Dockerfile rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile index 9cde8fe42..d43b4f910 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/search/Dockerfile +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile @@ -77,28 +77,54 @@ RUN if [ "$ENABLE_SLAVE" == "true" ] ; then \ ARG ENABLE_SHARDING ARG NUM_SHARDS ARG SHARD_ID +ARG SHARDING_METHOD ENV ENABLE_SHARDING $ENABLE_SHARDING ENV NUM_SHARDS $NUM_SHARDS ENV SHARD_ID $SHARD_ID +ENV SHARDING_METHOD $SHARDING_METHOD # Set Port Number and Sharding ID for this Shard Service RUN if [ "$ENABLE_SHARDING" == "true" ] ; then \ - sed -i '/^bash.*/i echo "\nsolr.port.ssl=8983\nshard.count=${NUM_SHARDS}\nshard.instance=${SHARD_ID}" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + sed -i '/^bash.*/i echo "\nsolr.port.ssl=8983\nshard.instance=${SHARD_ID}" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ ${DIST_DIR}/solr/bin/search_config_setup.sh && \ + if [[ ("$SHARDING_METHOD" != "DB_ID_RANGE") && ("$SHARDING_METHOD" != "EXPLICIT_ID_FALLBACK_LRIS") ]]; then \ + sed -i '/^bash.*/i echo "\nshard.count=${NUM_SHARDS}" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + fi; \ sed -i '/^bash.*/i echo "\nalfresco.port=8080\nalfresco.port.ssl=8443\nalfresco.baseUrl=/alfresco" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ ${DIST_DIR}/solr/bin/search_config_setup.sh; \ fi -# EXPLICIT ROUTING SHARDING -ARG EXPLICIT_ROUTING_SHARDING -ENV EXPLICIT_ROUTING_SHARDING $EXPLICIT_ROUTING_SHARDING +# SHARDING METHODS +ARG SHARD_RANGE +ENV SHARD_RANGE $SHARD_RANGE +ARG SHARD_KEY +ENV SHARD_KEY $SHARD_KEY +ARG SHARD_DATE_GROUPING +ENV SHARD_DATE_GROUPING $SHARD_DATE_GROUPING # Set Shard Method and Shard Key property name -RUN if [ "$EXPLICIT_ROUTING_SHARDING" == "true" ] ; then \ - sed -i '/^bash.*/i sed -i "'"s/shard.method=DB_ID/shard.method=EXPLICIT_ID_FALLBACK_DBID/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ - ${DIST_DIR}/solr/bin/search_config_setup.sh && \ - sed -i '/^bash.*/i echo "\nshard.key=shard:shardId\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ +RUN if [ "$ENABLE_SHARDING" == "true" ] ; then \ + sed -i '/^bash.*/i sed -i "'"s/shard.method=DB_ID/shard.method=${SHARDING_METHOD}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + if [ "$SHARDING_METHOD" == "DB_ID_RANGE" ]; then \ + sed -i '/^bash.*/i echo "\nshard.range=${SHARD_RANGE}\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + fi; \ + if [ "$SHARDING_METHOD" == "DATE" ]; then \ + sed -i '/^bash.*/i echo "\nshard.key=${SHARD_KEY}\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh && \ + sed -i '/^bash.*/i echo "\nshard.date.grouping=${SHARD_DATE_GROUPING}\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + fi; \ + if [ "$SHARDING_METHOD" == "PROPERTY" ]; then \ + sed -i '/^bash.*/i echo "\nshard.key=${SHARD_KEY}\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + fi; \ + if [[ ("$SHARDING_METHOD" == "EXPLICIT_ID") || ("$SHARDING_METHOD" == "EXPLICIT_ID_FALLBACK_LRIS") ]]; then \ + sed -i '/^bash.*/i echo "\nshard.key=${SHARD_KEY}\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + fi; \ fi # Useless for 'none'/'http' communications with Alfresco diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/zeppelin/Dockerfile b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/zeppelin/Dockerfile similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/zeppelin/Dockerfile rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/zeppelin/Dockerfile diff --git a/e2e-test/generator-alfresco-docker-compose/package-lock.json b/e2e-test/generator-alfresco-docker-compose/package-lock.json index 0a890eb5a..988ed30d1 100644 --- a/e2e-test/generator-alfresco-docker-compose/package-lock.json +++ b/e2e-test/generator-alfresco-docker-compose/package-lock.json @@ -1216,9 +1216,9 @@ } }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "log-symbols": { "version": "2.2.0", @@ -1358,9 +1358,9 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -1804,9 +1804,9 @@ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -2196,35 +2196,14 @@ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "set-value": "^2.0.1" } }, "unset-value": {