
Il s'agit de la base de code Drupal qui alimente Jeffgeerling.com.
La construction de ce projet et la migration de Jeffgeerling.com de Drupal 7 à Drupal 8 ont été diffusées en direct sur la chaîne YouTube de Geerlingguy; Vous pouvez regarder tous les épisodes et voir les résumés et les ressources des épisodes ici: migrer Jeffgeerling.com de Drupal 7 à Drupal 8 - série vidéo.
J'ai décidé d'ouvrir la base de code de mon site Web pour aider d'autres utilisateurs de Drupal à voir comment j'ai construit et maintenir ce site. Si vous aimez ce que vous voyez ou avez été aidé de quelque manière que ce soit par ce projet, veuillez envisager de me soutenir via Patreon, les sponsors GitHub ou un autre lien d'affiliation.
Actuellement, le processus de déploiement se déroule à partir du livre de jeu d'infrastructure Mac Midwest:
ansible-playbook playbook.yml --tags=deploy
Remarque : assurez-vous que vous êtes sur la succursale
masterlors du déploiement!
Ce référentiel comprend un Dockerfile.prod .
Pour construire cette image:
docker build -f Dockerfile.prod -t geerlingguy/jeffgeerling-com:arm64 .
Ensuite, vous pouvez pousser l'image vers le référentiel officiel geerlingguy/jeffgeerling-com sur Docker Hub:
docker push geerlingguy/jeffgeerling-com:arm64
Remarque: L'image est automatiquement construite et poussée vers Docker Hub via des actions GitHub chaque fois qu'un commit est poussé vers la branche
master.
La première fois que vous commencez à utiliser ce projet, vous devez créer votre fichier de paramètres locaux:
cp web/sites/default/example.settings.local.php web/sites/default/settings.local.php
Assurez-vous que Docker est installé, puis exécutez la commande suivante (dans le même répertoire que ce fichier de lecture):
docker compose up -d
Installez les dépendances PHP exécutant le compositeur à l'intérieur du conteneur:
docker compose exec drupal composer install
Visitez http: // localhost / pour voir l'installation de Drupal. Visitez http: // localhost: 8025 / pour voir MailHog.
Vous pouvez installer Drupal à l'aide de l'assistant d'installation, mais nous aimons utiliser Dush pour plus d'automatisation:
docker compose exec drupal bash -c 'vendor/bin/drush site:install minimal --db-url="mysql://drupal:$DRUPAL_DATABASE_PASSWORD@$DRUPAL_DATABASE_HOST/drupal" --site-name="Jeff Geerling" --existing-config -y'
À un moment donné, je vais écrire comment tout faire avec Dush, automatisé.
Pour l'instant:
Chaque fois que la configuration est modifiée ou que tout module ou Drupal est mis à niveau, vous devez exporter la configuration du site à l'aide de la commande:
docker compose exec drupal bash -c 'vendor/bin/drush config:export -y'
Puis appuyez sur toutes les modifications du référentiel GIT avant de déployer le dernier code sur le site.
docker compose exec drupal bash -c 'composer update' (pour tout mettre à jour).docker compose exec drupal bash -c 'vendor/bin/drush updb -y'docker compose exec drupal bash -c 'vendor/bin/drush config:export -y' Vous pouvez tester le code personnalisé dans ce projet à l'aide de phpcs :
docker compose exec drupal bash -c './vendor/bin/phpcs
--standard="Drupal,DrupalPractice" -n
--extensions="php,module,inc,install,test,profile,theme"
web/themes/jeffgeerling
web/modules/custom'
La configuration Docker de ce projet permet un conteneur MailHog, qui a une interface utilisateur Web disponible sur http://127.0.0.1:8025 .
Le fichier php.ini pour l'environnement local est automatiquement configuré pour utiliser mhsendmail pour envoyer les e-mails de PHP via l'instance MailHog lorsque vous utilisez Dockerfile de ce projet pour créer l'environnement Drupal.
Lorsque Drupal envoie un e-mail, il doit être visible dans l'interface utilisateur de Mailhog.