Sommaire
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.
Plateforme | Docker | Image | GitHub |
---|---|---|---|
Alfresco Content Repository 5.2 | jeci/alfresco-platform | Hub Docker Jeci alfresco-platform | GitHub |
Alfresco Share 5.2 | jeci/alfresco-share | Hub Docker Jeci alfresco-share | GitHub |
Alfresco Solr 4 | jeci/alfresco-solr | Hub Docker Jeci alfresco-solr | GitHub |
LibreOffice 5.2 | jeci/alfresco-libreoffice | Hub Docker Jeci alfresco-libreoffice | GitHub Mise à jour : Alfresco x Collabora Online |
docker images
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/jeremie-lesage/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
.
Sources
Les sources sont disponibles sur Github:
- Projet principal : https://github.com/jeremie-lesage/alfresco-docker-cloud
- https://github.com/jeremie-lesage/docker-alfresco-platform
- https://github.com/jeremie-lesage/docker-alfresco-share
- https://github.com/jeremie-lesage/docker-alfresco-solr
- https://github.com/jeremie-lesage/docker-alfresco-libreoffice
Déclarez les problèmes dans le projet Github
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
[source,sh]
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 disponibles 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
.
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:
docker-compose.yml
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
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-Alfresco
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
Dockerfile-Share
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.
services:
alfresco:
image: alfresco-platform-rm:2.5.b
[...]
share:
image: alfresco-share-rm:2.5.b
[...]
docker-compose.yml
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).