Skip to content

Commit

Permalink
OPSEXP-2735 Add search enterprise all-in-one image Dockerfile (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
pmacius authored Jul 23, 2024
1 parent e8c096c commit 22e26b5
Show file tree
Hide file tree
Showing 7 changed files with 284 additions and 21 deletions.
34 changes: 33 additions & 1 deletion .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,44 @@ jobs:
- name: Show all images
run: docker images

- name: Docker save the images produced by the bake action with the name consisting alfresco
run: |
docker save -o /tmp/alfresco-docker-images.tar $(docker images --format "{{.Repository}}:{{.Tag}}" | grep alfresco)
- name: Upload image as a tar for next job
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # 4.3.4
with:
name: ${{ github.run_number }}
path: /tmp/alfresco-docker-images.tar

compose-test:
name: compose-test ${{ matrix.docker-compose-file }}
needs: build-test
runs-on: ubuntu-latest
strategy:
matrix:
docker-compose-file: [docker-compose.yml, docker-compose-components.yml]
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@2ad185228a349d19414702819e06df9fa4314287 # 3.4.0

- name: Download artifacts
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # 4.1.8
with:
path: /tmp
name: "${{ github.run_number }}"

- name: Load Docker images
run: |
ls -1 /tmp/*.tar | xargs --no-run-if-empty -L 1 docker load -i
docker image ls -a
- name: Verify docker-compose
uses: Alfresco/alfresco-build-tools/.github/actions/dbp-charts/[email protected]
timeout-minutes: 10
with:
compose_pull: false
compose_file_path: docker-compose/docker-compose.yml
compose_file_path: docker-compose/${{ matrix.docker-compose-file }}
quay_username: ${{ secrets.QUAY_USERNAME }}
quay_password: ${{ secrets.QUAY_PASSWORD }}

Expand Down
29 changes: 23 additions & 6 deletions docker-bake.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -155,21 +155,38 @@ target "repository" {

target "search_liveindexing" {
matrix = {
liveindexing = ["metadata", "path", "content"]
liveindexing = [
{
artifact = "alfresco-elasticsearch-live-indexing-metadata",
name = "metadata"
},
{
artifact = "alfresco-elasticsearch-live-indexing-path",
name = "path"
},
{
artifact = "alfresco-elasticsearch-live-indexing-content",
name = "content"
},
{
artifact = "alfresco-elasticsearch-live-indexing",
name = "all-in-one"
}
]
}
name = "search_liveindexing-${liveindexing}"
name = "${liveindexing.artifact}"
args = {
LIVEINDEXING = "${liveindexing}"
LIVEINDEXING = "${liveindexing.artifact}"
}
dockerfile = "./search/enterprise/common/Dockerfile"
inherits = ["java_base"]
contexts = {
java_base = "target:java_base"
}
labels = {
"org.opencontainers.image.title" = "${PRODUCT_LINE} Enterprise Search - ${liveindexing}"
"org.opencontainers.image.description" = "${PRODUCT_LINE} Enterprise Search - ${liveindexing} live indexing"
"org.opencontainers.image.title" = "${PRODUCT_LINE} Enterprise Search - ${liveindexing.name}"
"org.opencontainers.image.description" = "${PRODUCT_LINE} Enterprise Search - ${liveindexing.name} live indexing"
}
tags = ["alfresco-elasticsearch-live-indexing-${liveindexing}:latest"]
tags = ["${liveindexing.artifact}:latest"]
output = ["type=docker"]
}
204 changes: 204 additions & 0 deletions docker-compose/docker-compose-components.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
version: "2"
services:
alfresco:
image: quay.io/alfresco/alfresco-content-repository:23.2.2
mem_limit: 1900m
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: >-
-Ddb.driver=org.postgresql.Driver
-Ddb.username=alfresco
-Ddb.password=alfresco
-Ddb.url=jdbc:postgresql://postgres:5432/alfresco
-Dindex.subsystem.name=elasticsearch
-Delasticsearch.createIndexIfNotExists=true
-Delasticsearch.host=elasticsearch
-Delasticsearch.port=9200
-Dshare.host=127.0.0.1
-Dshare.port=8080
-Dalfresco.host=localhost
-Dalfresco.port=8080
-Dcsrf.filter.enabled=false
-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/
-DlocalTransform.core-aio.url=http://transform-core-aio:8090/
-Ddsync.service.uris=http://localhost:9090/alfresco
-XX:MinRAMPercentage=50
-XX:MaxRAMPercentage=80
healthcheck:
test:
- CMD
- curl
- -f
- http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/probes/-ready-
interval: 30s
timeout: 3s
retries: 3
start_period: 1m
transform-router:
mem_limit: 512m
image: quay.io/alfresco/alfresco-transform-router:4.1.2
environment:
JAVA_OPTS: >-
-XX:MinRAMPercentage=50
-XX:MaxRAMPercentage=80
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
ports:
- "8095:8095"
depends_on:
- activemq
transform-core-aio:
image: alfresco/alfresco-transform-core-aio:5.1.2
mem_limit: 1536m
environment:
JAVA_OPTS: >-
-XX:MinRAMPercentage=50
-XX:MaxRAMPercentage=80
ACTIVEMQ_URL: nio://activemq:61616
FILE_STORE_URL: >-
http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file
ports:
- "8090:8090"
depends_on:
- activemq
shared-file-store:
image: quay.io/alfresco/alfresco-shared-file-store:4.1.2
mem_limit: 512m
environment:
JAVA_OPTS: >-
-XX:MinRAMPercentage=50
-XX:MaxRAMPercentage=80
scheduler.content.age.millis: 86400000
scheduler.cleanup.interval: 86400000
ports:
- "8099:8099"
volumes:
- shared-file-store-volume:/tmp/Alfresco/sfs
share:
image: quay.io/alfresco/alfresco-share:23.2.1
mem_limit: 1g
environment:
REPO_HOST: "alfresco"
REPO_PORT: "8080"
JAVA_OPTS: >-
-XX:MinRAMPercentage=50
-XX:MaxRAMPercentage=80
-Dalfresco.host=localhost
-Dalfresco.port=8080
-Dalfresco.context=alfresco
-Dalfresco.protocol=http
postgres:
image: postgres:14.4
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"
elasticsearch:
image: elasticsearch:7.10.1
environment:
- xpack.security.enabled=false
- discovery.type=single-node
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
cap_add:
- IPC_LOCK
ports:
- 9200:9200
- 9300:9300
activemq:
image: alfresco/alfresco-activemq:5.18-jre17-rockylinux8
mem_limit: 1g
ports:
- "8161:8161" # Web Console
- "5672:5672" # AMQP
- "61616:61616" # OpenWire
- "61613:61613" # STOMP
digital-workspace:
image: quay.io/alfresco/alfresco-digital-workspace:4.4.1
mem_limit: 128m
environment:
APP_CONFIG_PROVIDER: "ECM"
APP_CONFIG_AUTH_TYPE: "BASIC"
BASE_PATH: ./
APP_CONFIG_PLUGIN_PROCESS_SERVICE: "false"
APP_CONFIG_PLUGIN_MICROSOFT_ONLINE: "false"
APP_BASE_SHARE_URL: "http://localhost:8080/workspace/#/preview/s"
control-center:
image: quay.io/alfresco/alfresco-control-center:8.4.1
mem_limit: 128m
environment:
APP_CONFIG_PROVIDER: "ECM"
APP_CONFIG_AUTH_TYPE: "BASIC"
BASE_PATH: ./
proxy:
image: alfresco/alfresco-acs-nginx:3.4.2
mem_limit: 128m
ports:
- "8080:8080"
depends_on:
- digital-workspace
- alfresco
- share
- control-center
sync-service:
image: quay.io/alfresco/service-sync:4.0.1
mem_limit: 1g
environment:
JAVA_OPTS: >-
-Dsql.db.driver=org.postgresql.Driver
-Dsql.db.url=jdbc:postgresql://postgres:5432/alfresco
-Dsql.db.username=alfresco
-Dsql.db.password=alfresco
-Dmessaging.broker.host=activemq
-Drepo.hostname=alfresco
-Drepo.port=8080
-Ddw.server.applicationConnectors[0].type=http
-XX:MinRAMPercentage=50
-XX:MaxRAMPercentage=80
ports:
- "9090:9090"
live-indexing-metadata:
image: alfresco-elasticsearch-live-indexing-metadata:latest
environment:
SPRING_ELASTICSEARCH_REST_URIS: http://elastic:9200
SPRING_ACTIVEMQ_BROKERURL: nio://activemq:61616
live-indexing-path:
image: alfresco-elasticsearch-live-indexing-path:latest
environment:
SPRING_ELASTICSEARCH_REST_URIS: http://elasticsearch:9200
SPRING_ACTIVEMQ_BROKERURL: nio://activemq:61616
live-indexing-content:
image: alfresco-elasticsearch-live-indexing-content:latest
environment:
SPRING_ELASTICSEARCH_REST_URIS: http://elasticsearch:9200
SPRING_ACTIVEMQ_BROKERURL: nio://activemq:61616
ALFRESCO_SHAREDFILESTORE_BASEURL: http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file
volumes:
shared-file-store-volume:
driver_opts:
type: tmpfs
device: tmpfs
16 changes: 3 additions & 13 deletions docker-compose/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -181,22 +181,12 @@ services:
-XX:MaxRAMPercentage=80
ports:
- "9090:9090"
live-indexing-metadata:
image: alfresco-elasticsearch-live-indexing-metadata:latest
environment:
SPRING_ELASTICSEARCH_REST_URIS: http://elastic:9200
SPRING_ACTIVEMQ_BROKERURL: nio://activemq:61616
live-indexing-path:
image: alfresco-elasticsearch-live-indexing-path:latest
environment:
SPRING_ELASTICSEARCH_REST_URIS: http://elasticsearch:9200
SPRING_ACTIVEMQ_BROKERURL: nio://activemq:61616
live-indexing-content:
image: alfresco-elasticsearch-live-indexing-content:latest
live-indexing:
image: alfresco-elasticsearch-live-indexing:latest
environment:
SPRING_ELASTICSEARCH_REST_URIS: http://elasticsearch:9200
SPRING_ACTIVEMQ_BROKERURL: nio://activemq:61616
ALFRESCO_SHAREDFILESTORE_BASEURL: http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file
ALFRESCO_SHAREDFILESTORE_BASEURL: http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file/
volumes:
shared-file-store-volume:
driver_opts:
Expand Down
13 changes: 13 additions & 0 deletions search/enterprise/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,16 @@ live-indexing-content:
- `SPRING_ELASTICSEARCH_REST_URIS` - Elasticsearch server, by default `http://elasticsearch:9200`
- `SPRING_ACTIVEMQ_BROKERURL` - Alfresco ActiveMQ, by default `nio://activemq:61616`
- `ALFRESCO_SHAREDFILESTORE_BASEURL` - Alfresco Shared FileStore endpoint, by default `http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file/`

## all-in-one

```yaml

live-indexing:
image: alfresco-enterprise-search-aio:YOUR-TAG
environment:
SPRING_ELASTICSEARCH_REST_URIS: http://elasticsearch:9200
SPRING_ACTIVEMQ_BROKERURL: nio://activemq:61616
ALFRESCO_SHAREDFILESTORE_BASEURL: http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file/

```
2 changes: 1 addition & 1 deletion search/enterprise/common/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ARG LIVEINDEXING
ENV PORT=8080
EXPOSE 8080

ADD search/enterprise/common/*${LIVEINDEXING}*-app.jar /opt/app.jar
ADD search/enterprise/common/${LIVEINDEXING}*-app.jar /opt/app.jar

HEALTHCHECK --interval=30s --timeout=3s --retries=3 --start-period=1m \
CMD curl -f http://localhost:8080/actuator/health || exit 1
Expand Down
7 changes: 7 additions & 0 deletions search/enterprise/common/artifacts.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@
"path": "search/enterprise/common",
"classifier": "-app.jar",
"group": "org.alfresco"
},
{
"name": "alfresco-elasticsearch-live-indexing",
"version": "4.0.1",
"path": "search/enterprise/common",
"classifier": "-app.jar",
"group": "org.alfresco"
}
]
}
Expand Down

0 comments on commit 22e26b5

Please sign in to comment.