Configuration d'un répartiteur AEM local avec Docker

Le proxy inverse et la mise en cache sont deux des nombreuses fonctionnalités fournies par le module de répartition AEM. C'est le prisme à travers lequel vos internautes verront le contenu sur l'éditeur AEM. Les développeurs diront que l'équipe de développement et d'exploitation (DevOps) s'en charge. DevOps s'appuie sur les développeurs pour fournir des instructions sur la façon de le configurer. Presque personne ne l'installe dans son environnement local. Au lieu de cela, ils dépendent de systèmes distants pour tester et déboguer. Cela peut parfois se transformer en un jeu de whack-a-mole jusqu'à ce que les choses fonctionnent.
Dans cet article, je vais passer en revue comment configurer un répartiteur local à l'aide de docker pour créer un proxy vers votre instance de publication AEM locale. Nous pourrons mettre à jour les fichiers de configuration, les journaux de suivi et le débogage. Lorsque nous enverrons la configuration à DevOps, ce sera avec un cachet d'approbation «cela a fonctionné sur mon ordinateur».
Installer Docker
Nous utilisons Docker pour éviter les difficultés liées à l'installation d'Apache sur votre plate-forme (Windows ou macOS) . Nous obtenons également un environnement assez proche de ce qu'AMS utiliserait. L'installation de Docker sur votre plate-forme devrait être assez simple. Une fois i n bloqué vous pouvez vérifier avec les commandes suivantes
Créer une arche e ] type Project
Vous pouvez avoir votre propre configuration Apache. Avant de les ajouter, construisons une ligne de base à l'aide du projet d'archétype . Notez que la aemVersion est définie sur 6.5.0, ce qui n'est PAS la même chose si vous utilisiez AEM comme service cloud. Cela signifie qu'ils fonctionneront sur les répartiteurs AMS, pas sur AEM en tant que service cloud.
mvn -B archetype: generate -D archetypeGroupId = com.adobe.aem -D archetypeArtifactId = aem-project-archetype -D archetypeVersion = 24 -D appTitle = "Mon site" -D appId = "monsite" -D groupId = "com.mysite" -D aemVersion = "6.5.0"
Building an Image
Pour construire une image, nous allons exploiter une image CentOS existante. Nous installerons Apache et le module dispatcher. C'est à peu près la même configuration sur AMS. La seule différence est qu'ils utilisent Enterprise RedHat Linux dont CentOS est la version gratuite. Commencez par créer le fichier Dockerfile suivant dans le dossier de projet mysite :
FROM centos: 7.8.2003 ARG MODULE_URL RUN yum -y update && miam -y installer httpd && miam nettoyer tout && mv $ (curl --insecure --silent $ {MODULE_URL} | tar xzvf - --wildcards "* .so" | head -1) /etc/httpd/modules/mod_dispatcher.so && chown racine: racine /etc/httpd/modules/mod_dispatcher.so EXPOSER 80 RUN mkdir -p / mnt / var / www / author && mkdir -p / mnt / var / www / html && mkdir -p / mnt / var / www / default && chown -R apache: apache / mnt / var / www WORKDIR / etc / httpd CMD [ "apachectl", "-DFOREGROUND" ]
Du contenu pour tous
Les entreprises capables de répondre rapidement et systématiquement aux demandes des consommateurs prospèrent à une époque de contenu infini. Découvrez comment créer des expériences fluides pour vos clients omnicanal.
N ow nous créons l'image avec la commande suivante dans le dossier de projet mysite :
docker build -t mysite / dispatcher: dernier --build-arg MODULE_URL = https: //download.macromedia.com/dispatcher/download/dispatcher-apache2.4-linux-x86_64-4.3.3.tar.gz .
Création d'un conteneur
Ensuite, vous devrez c créer un conteneur en utilisant l'image en utilisant Docker Compose . Créez un fichier appelé docker-compose.yml dans le dossier mysite .
version: "3.8" prestations de service: répartiteur: image: mysite / dispatcher: dernier ports: - 80:80 environnement: DISP_ID: dispatcher1docker AUTHOR_DEFAULT_HOSTNAME: author.mycompany.local AUTHOR_IP: host.docker.internal AUTHOR_PORT: 4502 AUTHOR_DOCROOT: / mnt / var / www / author PUBLISH_DEFAULT_HOSTNAME: monsite.monentreprise.local PUBLISH_IP: host.docker.internal PUBLISH_PORT: 4503 PUBLISH_DOCROOT: / mnt / var / www / html CRX_FILTER: refuser volumes: - ./dispatcher/src/conf:/etc/httpd/conf:ro - ./dispatcher/src/conf.d:/etc/httpd/conf.d:ro - ./dispatcher/src/conf.dispatcher.d:/etc/httpd/conf.dispatcher.d:ro - ./dispatcher/src/conf.modules.d:/etc/httpd/conf.modules.d:ro - ./httpd-docroot:/mnt/var/www/html[19659069子Cequenousmettonsenplaceiciestunserviceappelé dispatcher . Les variables d'environnement représentent l'ensemble minimal utilisé par l'archétype des configurations Apache. La section des volumes mappe chaque dossier de configuration à sa place dans le conteneur. Le dernier volume mappe le dossier HTML dans lequel le répartiteur met les pages en cache avec le répertoire de notre hôte. C'est ainsi qu'ils persisteront si le conteneur redémarre. Cela nous permet également de parcourir les données mises en cache dans le système de fichiers de notre hôte.Les configurations d'archétype créeront 2 hôtes virtuels. Ce sont author.mycompany.local et mysite.mycompany.local . Pour y accéder localement, vous devez vous assurer de mettre à jour votre fichier hosts (c'est-à-dire / etc / hosts sous macOS) afin qu'ils se résolvent en 127.0.0.1 .
Test MySite via le répartiteur par défaut
Démarrez votre éditeur et déployez mysite en utilisant la commande que nous connaissons et aimons tous :
mvn clean install -P autoInstallPackagePublish -P adobe-publicDémarre la distribution r
docker-compose up -dEt vérifiez les éléments suivants: thin g s [19659002]
Choses à essayer
Il existe de nombreux sujets liés aux répartiteurs que nous pourrions aborder et que ne rentrerait pas dans ce didacticiel. Voici quelques idées que vous pouvez essayer maintenant que vous disposez d'un répartiteur fonctionnel.
- Testez le dispatcher flush
- Supprimez la racine / content / mysite en mettant à jour les règles de réécriture
- Créez un nouveau vhost pour un nouveau site
- Accéder à l'auteur via le répartiteur
- Configurer Sling Server Side comprend
- Tail the logs generated by Apache
- Explore les modules sous / etc / httpd / modules
J'espère que vous avez trouvé ce billet de blog utile. Pour toute question supplémentaire, veuillez commenter ci-dessous et n'oubliez pas de consulter nos autres blogs Adobe .
Source link