Alfresco Docker Cloud

Le but de ce projet est de fournir un système Alfresco de production fonctionnant sous Docker.

Nous avons créé 4 images docker pour construire une installation complète d’Alfresco sur Docker. Nous ciblons des images petites et flexibles pour tester sur un laptop avec Docker-Compose ou en production avec docker-swarm.

Les images sont automatiquement construites sur Docker Cloud et basées sur les images official Tomcat pour être le plus standard possible.

Table 1. Docker Images

Alfresco Content Repository 5.2

jeci/alfresco-platform

Hub Docker Jeci alfresco-platform

link:https://microbadger.com/images/jeci/alfresco-platform:5.2.g

Alfresco Share 5.2

jeci/alfresco-share

alfresco share:5.2.f

alfresco share:5.2.f

Alfresco Solr 4

jeci/alfresco-solr

alfresco solr:5.2.g

alfresco solr:5.2.g

LibreOffice 5.2

jeci/alfresco-libreoffice

alfresco libreoffice:5.3.6

alfresco libreoffice:5.3.6

Voir chapitre ci-dessous pour voir avec quelle facilité nous installons Alfresco RM sur ces images.

Quick Start (Ubuntu)

1. Installer Docker

sudo apt-get install docker.io
sudo usermod -a -G docker `whoami`
sudo curl -L -o /usr/local/bin/docker-compose \
  https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m`
sudo chmod +x /usr/local/bin/docker-compose

Lisez la documentation pour voir comment installer Docker et Docker-Compose

2. Démarrer Alfresco

ouvrir un nouveau terminal pour charger une nouvelle permission de groupe (ou vous devrez utiliser sudo pour exécuter la commande suivante)

wget https://raw.githubusercontent.com/jeci-sarl/alfresco-docker-cloud/master/docker-compose.yml

docker-compose up -d

3. Utiliser

Votre serveur est maintenant disponible : http://localhost:8080/share/ avec le login admin / admin

Quand vous avez terminé, éteignez avec la commande docker-compose down .

Prérequis

Avec la configuration par défaut vous avez besoin d’au moins 2GO de RAM et 2 CPU

Fonctionnement des conteneurs

En ligne de commande

Si vous ne souhaitez pas installer docker-compose, vous pouvez faire fonctionner les conteneurs en ligne de commande.

1. Récupérer toutes les images

docker pull jeci/alfresco-platform:5.2.g
docker pull jeci/alfresco-share:5.2.f
docker pull jeci/alfresco-solr:5.2.g
docker pull jeci/alfresco-libreoffice:5.3.6
docker pull postgres:9.4

2. Créez les repertoires pour le stockage local

mkdir -p volumes/alf_data volumes/solr_data volumes/pg_data
mkdir -p logs/alfresco logs/share logs/solr

3. Démarrez tous les conteneurs

docker run -d --name "postgresql" \
-e POSTGRES_DB=alfresco \
-e POSTGRES_PASSWORD=alfresco \
-e POSTGRES_USER=alfresco \
-v "$PWD/volumes/pg_data:/var/lib/postgresql/data" \
postgres:9.4

docker run -d --restart always --name "libreoffice" jeci/alfresco-libreoffice:5.2.7

docker run -d --name "alfresco" \
-e CATALINA_OPTS="-Xmx1G -XX:+UseConcMarkSweepGC" \
-v "$PWD/volumes/alf_data:/opt/alf_data" \
-v "$PWD/logs/alfresco:/usr/local/tomcat/logs/" \
--link postgresql:postgresql \
--link libreoffice:libreoffice \
jeci/alfresco-platform:5.2.g


docker run -d -p "8080:8080" --name "share" \
-e CATALINA_OPTS="-Xmx1G -XX:+UseConcMarkSweepGC" \
-v "$PWD/logs/share:/usr/local/tomcat/logs/" \
--link alfresco:alfresco \
jeci/alfresco-share:5.2.f


docker run -d --name "solr" \
-e CATALINA_OPTS="-Xmx1G -XX:+UseG1GC" \
-v "$PWD/volumes/solr_data:/opt/solr_data" \
-v "$PWD/logs/solr:/usr/local/tomcat/logs/" \
--link alfresco:alfresco \
jeci/alfresco-solr:5.2.g

4. Jouez

Votre serveur est maintenant disponible : http://localhost:8080/share/ with login admin / admin

Les logs sont disponible en cli:

docker logs alfresco

ou dans les répertoires locaux

ls logs/*

5. Nettoyage

docker stop share solr alfresco postgresql libreoffice
docker rm share solr alfresco postgresql libreoffice

rm -r ./logs
rm -r ./volumes

Avec Docker-Compose

Derrière le Quick Start ci-dessus, il y a un fichier docker-compose.yml qui définit les services. Vous pouvez facilement personnaliser cette configuration.

Vous y trouverez 4 services : alfresco, share, solr et postgresql. Vous devez respecter le nom du service car ils sont utilisés dans les fichiers de configuration. Attention à la version (tag) utilisée car Alfresco et Share ont des versions différentes.

Nous avons modifié ci-dessous la définition des ports pour accéder à Alfresco Platform sur le port 8080 et Alfresco Share sur le port 8081.

docker-compose.yml
version: '2'

services:
  alfresco:
    image: jeci/alfresco-platform:5.2.g
    environment:
      CATALINA_OPTS: "-Xmx1G -XX:+UseConcMarkSweepGC"
    depends_on:
      - postgresql
    networks:
      - internal
    ports:
      - "8080:8080"
    volumes:
      - "alf_logs:/usr/local/tomcat/logs/"
      - "alf_data:/opt/alf_data"
    tmpfs:
      - /tmp
      - /usr/local/tomcat/temp/
      - /usr/local/tomcat/work/

  share:
    image: jeci/alfresco-share:5.2.f
    environment:
      CATALINA_OPTS: "-Xmx1G -XX:+UseConcMarkSweepGC"
    depends_on:
      - alfresco
    networks:
      - internal
    ports:
      - "8081:8080"
    volumes:
      - "share_logs:/usr/local/tomcat/logs/"
    tmpfs:
      - /tmp
      - /usr/local/tomcat/temp/
      - /usr/local/tomcat/work/

  solr:
    image: jeci/alfresco-solr:5.2.g
    environment:
      CATALINA_OPTS: "-Xmx1G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:G1HeapRegionSize=8m -XX:MaxGCPauseMillis=200"
    depends_on:
      - alfresco
    networks:
      - internal
    volumes:
      - "solr_logs:/usr/local/tomcat/logs/"
      - "solr_data:/opt/solr_data"
    tmpfs:
      - /tmp
      - /usr/local/tomcat/temp/
      - /usr/local/tomcat/work/

  libreoffice:
    image: jeci/alfresco-libreoffice:5.2.7
    restart: always
    networks:
      - internal

  postgresql:
    image: postgres:9.4
    environment:
      - POSTGRES_DB=alfresco
      - POSTGRES_PASSWORD=alfresco
      - POSTGRES_USER=alfresco
    networks:
      - internal
    volumes:
      - "pgsql_data:/var/lib/postgresql/data"

volumes:
  alf_logs:
  alf_data:
  share_logs:
  solr_logs:
  solr_data:
  pgsql_data:

networks:
  internal:

Puis relancez docker-compose pour recharcher la nouvelle configuration:

docker-compose up -d

Vous pouvez maintenant essayer Alfresco Share http://localhost:8081/share/ ou Alfresco Plateform http://localhost:8080/alfresco/.

Vous pouvez vérifier les logs par service :

docker-compose logs alfresco
docker-compose logs share
docker-compose logs solr

Aller plus loin

Vous pouvez facilement ajouter des modules ou des configurations personnalisés avec ces images.

Ajouter un module AMP personnalisé

Vous devez fabriquer votre propre image Docker. You have to make your own Docker image. Vous trouverez ci-dessous un exemple simple d’ajout d’Alfresco RM 2.5 à nos images de base.

Télécharger d’abord les modules Alfresco RM dans un repertoire local.

wget https://artifacts.alfresco.com/nexus/content/groups/public/org/alfresco/alfresco-rm-community-repo/2.5.b/alfresco-rm-community-repo-2.5.b.amp
wget https://artifacts.alfresco.com/nexus/content/groups/public/org/alfresco/alfresco-rm-community-share/2.5.b/alfresco-rm-community-share-2.5.b.amp

Puis créez 2 Dockerfile, pour Alfresco Plateform Dockerfile-Alfresco et pour Alfresco Share Dockerfile-Share

Dockerfile-Alfresco
FROM jeci/alfresco-platform:5.2.g

COPY alfresco-rm-community-repo-2.5.b.amp /root/amp

RUN java -jar /root/alfresco-mmt.jar install /root/amp/ /usr/local/tomcat/webapps/alfresco -nobackup -directory
Dockerfile-Share
FROM jeci/alfresco-share:5.2.f

COPY alfresco-rm-community-share-2.5.b.amp /root/amp

RUN java -jar /root/alfresco-mmt.jar install /root/amp/ /usr/local/tomcat/webapps/share -nobackup -directory

Puis construisez les deux images:

docker build -f Dockerfile-Alfresco -t alfresco-platform-rm:2.5.b .
docker build -f Dockerfile-Share -t alfresco-share-rm:2.5.b .

Ne pas oublier le dernier point '.'

Mettez à jour votre fichier docker-compose.yml pour charger vos images.

docker-compose.yml
services:
  alfresco:
    image: alfresco-platform-rm:2.5.b
  [...]

  share:
    image: alfresco-share-rm:2.5.b
  [...]

Enfin, rechargez vos services :

docker-compose up -d

Cette commande va redémarrer tous vos services sauf postgresql, car il ne dépend pas d’Alfresco. Vos volumes restent inchangés, vos données sont donc toujours là (bases de données, contentstore et index solr).

A propos de JECI

Maintenance Logicielle, Conteneur (Docker, Kubernetes), Alfresco Community, Logiciels Libres
SARL - Capital : 5000€, immatriculée au RCS de Dijon

Nous contacter

+33 9 72 38 21 92 info@jeci.fr

2013-2020 Jeci | Mixed with v4.3.2 | Baked with JBake v2.6.4 | Photo by Valdas Miskinis on Unsplash | Mentions légales