-
Notifications
You must be signed in to change notification settings - Fork 6.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
330 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,163 @@ | ||
## Compose sample application | ||
|
||
### Alfresco Community | ||
|
||
Project structure: | ||
``` | ||
. | ||
├── README.md | ||
└── compose.yaml | ||
``` | ||
|
||
[_compose.yaml_](compose.yaml) | ||
``` | ||
postgres: | ||
volumes: | ||
- postgres-data:/var/lib/postgresql/data | ||
activemq: | ||
volumes: | ||
- activemq-data:/opt/activemq/data | ||
transform-core-aio: | ||
depends_on: | ||
activemq: | ||
condition: service_healthy | ||
alfresco: | ||
depends_on: | ||
postgres: | ||
condition: service_healthy | ||
activemq: | ||
condition: service_healthy | ||
transform-core-aio: | ||
condition: service_healthy | ||
volumes: | ||
- alf-repo-data:/usr/local/tomcat/alf_data | ||
solr6: | ||
depends_on: | ||
alfresco: | ||
condition: service_healthy | ||
volumes: | ||
- solr-data:/opt/alfresco-search-services/data | ||
share: | ||
depends_on: | ||
alfresco: | ||
condition: service_healthy | ||
content-app: | ||
depends_on: | ||
alfresco: | ||
condition: service_healthy | ||
control-center: | ||
depends_on: | ||
alfresco: | ||
condition: service_healthy | ||
proxy: | ||
depends_on: | ||
share: | ||
condition: service_started | ||
content-app: | ||
condition: service_started | ||
control-center: | ||
condition: service_started | ||
alfresco: | ||
condition: service_started | ||
volumes: | ||
activemq-data: | ||
postgres-data: | ||
alf-repo-data: | ||
solr-data: | ||
``` | ||
|
||
This Docker Compose configuration defines a set of services to deploy [Alfresco Community](https://github.com/alfresco/alfresco-docker-installer). | ||
|
||
**Services** | ||
|
||
* `postgres`: This service defines a database container | ||
* `activemq`: This service defines a message broker container | ||
* `transform-core-aio`: This service defines a document format transformer and it depends on the `activemq` service | ||
* `alfresco`: This service defines a content service platform and it depends on `postgres`, `activemq`, and `transform-core-aio` | ||
* `solr6`: This service defines a search engine and it depends on the `alfresco` | ||
* `share`, `content-app`, `control-center`: These services define the UI layer and they depend on the `alfresco` service | ||
* `proxy`: This service defines a web proxy and it depends on `share`, `content-app`, `control-center`, and `alfresco` | ||
|
||
**Volumes** | ||
|
||
* The configuration defines persistent storage volumes for each service that needs to maintain data across container restarts | ||
|
||
## Deploy with docker compose | ||
|
||
``` | ||
$ docker compose up -d | ||
[+] Running 9/9 | ||
✔ Network alfresco_default Created0.0s 0.1s | ||
⠙ Container alfresco-activemq-1 Starting0.3s 0.0s | ||
⠙ Container alfresco-postgres-1 Starting0.3s 0.1s | ||
✔ Container alfresco-transform-core-aio-1 Created0.0s 0.1s | ||
✔ Container alfresco-alfresco-1 Created0.0s | ||
... | ||
``` | ||
|
||
## Expected result | ||
|
||
Listing containers must show containers running and the port mapping as below: | ||
``` | ||
$ docker ps | ||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | ||
55468f6509b9 alfresco/alfresco-acs-nginx:3.4.2 "/entrypoint.sh" 4 minutes ago Up 3 minutes 80/tcp, 0.0.0.0:8080->8080/tcp alfresco-proxy-1 | ||
845a7c1bf80f alfresco/alfresco-search-services:2.0.10 "/bin/sh -c '$DIST_D…" 4 minutes ago Up 3 minutes 8983/tcp, 10001/tcp alfresco-solr6-1 | ||
89909bffca8c alfresco/alfresco-share:23.2.1 "/usr/local/tomcat/s…" 4 minutes ago Up 3 minutes 8000/tcp, 8080/tcp alfresco-share-1 | ||
f1bcbf762b9f alfresco/alfresco-content-app:4.4.1 "/docker-entrypoint.…" 4 minutes ago Up 3 minutes 8080/tcp alfresco-content-app-1 | ||
f68d0d9ceda6 quay.io/alfresco/alfresco-control-center:8.4.1 "/docker-entrypoint.…" 4 minutes ago Up 3 minutes 8080/tcp alfresco-control-center-1 | ||
d479afe64ed2 alfresco/alfresco-content-repository-community:23.2.1 "catalina.sh run -se…" 4 minutes ago Up 4 minutes (healthy) 8000/tcp, 8080/tcp, 10001/tcp alfresco-alfresco-1 | ||
dda9d0606e47 alfresco/alfresco-transform-core-aio:5.1.2 "/docker-entrypoint.…" 4 minutes ago Up 4 minutes (healthy) 8090/tcp alfresco-transform-core-aio-1 | ||
a23484408ad9 postgres:15.7 "docker-entrypoint.s…" 4 minutes ago Up 4 minutes (healthy) 5432/tcp alfresco-postgres-1 | ||
a8349f39b56b alfresco/alfresco-activemq:5.18-jre17-rockylinux8 "/bin/sh -c './init.…" 4 minutes ago Up 4 minutes (healthy) 5672/tcp, 8161/tcp, 61613/tcp, 61616/tcp alfresco-activemq-1 | ||
``` | ||
|
||
After the application starts, UI applications are available in the following endpoints using default credentials `admin`/`admin`: | ||
|
||
* Legacy UI: `http://localhost:8080/share` | ||
* Modern UI: `http://localhost:8080/content-app` | ||
* Management UI: `http://localhost:8080/admin` | ||
|
||
Stop and remove the containers | ||
``` | ||
$ docker compose down | ||
✔ Container alfresco-solr6-1 Removed | ||
✔ Container alfresco-proxy-1 Removed | ||
✔ Container alfresco-share-1 Removed | ||
✔ Container alfresco-content-app-1 Removed | ||
✔ Container alfresco-control-center-1 Removed | ||
✔ Container alfresco-alfresco-1 Removed | ||
✔ Container alfresco-postgres-1 Removed | ||
✔ Container alfresco-transform-core-aio-1 Removed | ||
✔ Container alfresco-activemq-1 Removed | ||
✔ Network alfresco_default Removed | ||
``` | ||
|
||
If you want to stop and remove both containers and volumes use following command: | ||
|
||
``` | ||
$ docker compose down -v | ||
✔ Container alfresco-solr6-1 Removed | ||
✔ Container alfresco-proxy-1 Removed | ||
✔ Container alfresco-share-1 Removed | ||
✔ Container alfresco-content-app-1 Removed | ||
✔ Container alfresco-control-center-1 Removed | ||
✔ Container alfresco-alfresco-1 Removed | ||
✔ Container alfresco-transform-core-aio-1 Removed | ||
✔ Container alfresco-postgres-1 Removed | ||
✔ Container alfresco-activemq-1 Removed | ||
✔ Volume alfresco_postgres-data Removed | ||
✔ Volume alfresco_solr-data Removed | ||
✔ Volume alfresco_alf-repo-data Removed | ||
✔ Volume alfresco_activemq-data Removed | ||
✔ Network alfresco_default Removed | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,167 @@ | ||
services: | ||
|
||
postgres: | ||
image: postgres:15.7 | ||
environment: | ||
POSTGRES_PASSWORD: alfresco | ||
POSTGRES_USER: alfresco | ||
POSTGRES_DB: alfresco | ||
PGUSER: alfresco | ||
command: postgres -c max_connections=300 -c log_min_messages=LOG | ||
healthcheck: | ||
test: ["CMD", "pg_isready"] | ||
interval: 10s | ||
timeout: 5s | ||
retries: 5 | ||
volumes: | ||
- postgres-data:/var/lib/postgresql/data | ||
|
||
activemq: | ||
image: docker.io/alfresco/alfresco-activemq:5.18-jre17-rockylinux8 | ||
environment: | ||
ACTIVEMQ_ADMIN_LOGIN: admin | ||
ACTIVEMQ_ADMIN_PASSWORD: admin | ||
healthcheck: | ||
test: ["CMD", "curl", "-f", "--user", "admin:admin", "http://localhost:8161/admin"] | ||
interval: 10s | ||
timeout: 5s | ||
retries: 5 | ||
volumes: | ||
- activemq-data:/opt/activemq/data | ||
|
||
transform-core-aio: | ||
image: docker.io/alfresco/alfresco-transform-core-aio:5.1.2 | ||
environment: | ||
ACTIVEMQ_URL: nio://activemq:61616 | ||
ACTIVEMQ_USER: admin | ||
ACTIVEMQ_PASSWORD: admin | ||
JAVA_OPTS: >- | ||
-Dserver.tomcat.threads.min=4 | ||
-Dserver.tomcat.threads.max=12 | ||
-XX:MinRAMPercentage=50 | ||
-XX:MaxRAMPercentage=80 | ||
healthcheck: | ||
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health"] | ||
interval: 30s | ||
timeout: 10s | ||
retries: 3 | ||
depends_on: | ||
activemq: | ||
condition: service_healthy | ||
|
||
alfresco: | ||
image: docker.io/alfresco/alfresco-content-repository-community:23.2.1 | ||
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.url=jdbc:postgresql://postgres:5432/alfresco | ||
-Dsolr.host=solr6 | ||
-Dsolr.secureComms=secret | ||
-Dsolr.sharedSecret=secret | ||
-Dindex.subsystem.name=solr6 | ||
-Dcsrf.filter.enabled=false | ||
-Dmessaging.broker.url="failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true" | ||
-DlocalTransform.core-aio.url=http://transform-core-aio:8090/ | ||
-Ddeployment.method=DOCKER_COMPOSE | ||
-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 | ||
depends_on: | ||
postgres: | ||
condition: service_healthy | ||
activemq: | ||
condition: service_healthy | ||
transform-core-aio: | ||
condition: service_healthy | ||
volumes: | ||
- alf-repo-data:/usr/local/tomcat/alf_data | ||
|
||
solr6: | ||
image: docker.io/alfresco/alfresco-search-services:2.0.10 | ||
environment: | ||
SOLR_ALFRESCO_HOST: "alfresco" | ||
SOLR_ALFRESCO_PORT: "8080" | ||
SOLR_SOLR_HOST: "solr6" | ||
SOLR_SOLR_PORT: "8983" | ||
SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco" | ||
ALFRESCO_SECURE_COMMS: "secret" | ||
JAVA_TOOL_OPTIONS: >- | ||
-Dalfresco.secureComms.secret=secret | ||
depends_on: | ||
alfresco: | ||
condition: service_healthy | ||
volumes: | ||
- solr-data:/opt/alfresco-search-services/data | ||
|
||
share: | ||
image: docker.io/alfresco/alfresco-share:23.2.1 | ||
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 | ||
depends_on: | ||
alfresco: | ||
condition: service_healthy | ||
|
||
content-app: | ||
image: docker.io/alfresco/alfresco-content-app:4.4.1 | ||
environment: | ||
APP_BASE_SHARE_URL: "http://localhost:8080/aca/#/preview/s" | ||
depends_on: | ||
alfresco: | ||
condition: service_healthy | ||
|
||
control-center: | ||
image: quay.io/alfresco/alfresco-control-center:8.4.1 | ||
environment: | ||
APP_CONFIG_PROVIDER: "ECM" | ||
APP_CONFIG_AUTH_TYPE: "BASIC" | ||
BASE_PATH: ./ | ||
depends_on: | ||
alfresco: | ||
condition: service_healthy | ||
|
||
proxy: | ||
image: docker.io/alfresco/alfresco-acs-nginx:3.4.2 | ||
environment: | ||
DISABLE_PROMETHEUS: "true" | ||
DISABLE_SYNCSERVICE: "true" | ||
DISABLE_ADW: "true" | ||
ENABLE_CONTENT_APP: "true" | ||
depends_on: | ||
share: | ||
condition: service_started | ||
content-app: | ||
condition: service_started | ||
control-center: | ||
condition: service_started | ||
alfresco: | ||
condition: service_started | ||
ports: | ||
- "8080:8080" | ||
|
||
volumes: | ||
activemq-data: | ||
postgres-data: | ||
alf-repo-data: | ||
solr-data: |