mirror of
https://github.com/Alfresco/SearchServices.git
synced 2026-09-16 18:12:56 +00:00
Merge branch 'feature/SEARCH-1738_ShardingMethods' into 'master'
Support for ACS 6.1 and latest See merge request search_discovery/insightengine!114
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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')
|
||||
);
|
||||
}
|
||||
|
||||
+2
-1
@@ -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
|
||||
+1
-1
@@ -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
|
||||
+16
-6
@@ -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
|
||||
+16
@@ -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
|
||||
Executable
+224
@@ -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
|
||||
Executable
+347
@@ -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
|
||||
+34
-8
@@ -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
|
||||
+13
-34
@@ -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": {
|
||||
|
||||
Reference in New Issue
Block a user