
นี่คือ drupal codebase ที่ให้อำนาจ jeffgeerling.com
การสร้างโครงการนี้และการย้ายถิ่นของ Jeffgeerling.com จาก Drupal 7 ไปยัง Drupal 8 ได้รับการสตรีมสดในช่อง YouTube ของ GeerlingGuy; คุณสามารถดูตอนทั้งหมดและดูสรุปตอนและแหล่งข้อมูลได้ที่นี่: การโยกย้าย jeffgeerling.com จาก Drupal 7 ไปยัง Drupal 8 - ซีรีย์วิดีโอวิธีการ
ฉันตัดสินใจที่จะเปิดแหล่งข้อมูลรหัสของเว็บไซต์ของฉันเพื่อช่วยให้ผู้ใช้ Drupal รายอื่นเห็นว่าฉันสร้างและบำรุงรักษาเว็บไซต์นี้อย่างไร หากคุณชอบสิ่งที่คุณเห็นหรือได้รับความช่วยเหลือจากโครงการนี้โปรดพิจารณาสนับสนุนฉันผ่าน Patreon ผู้สนับสนุน GitHub หรือลิงค์พันธมิตรอื่น
ขณะนี้กระบวนการสำหรับการปรับใช้การรันจาก Playbook โครงสร้างพื้นฐาน MAC ตะวันตก:
ansible-playbook playbook.yml --tags=deploy
หมายเหตุ : ตรวจสอบให้แน่ใจว่าคุณอยู่ในสาขา
masterเมื่อปรับใช้!
ที่เก็บนี้รวมถึง Dockerfile.prod ที่มีไว้สำหรับการสร้างภาพพร้อมการผลิต (พร้อมรหัสและสินทรัพย์ทั้งหมดรวมอยู่ด้วย)
เพื่อสร้างภาพนั้น:
docker build -f Dockerfile.prod -t geerlingguy/jeffgeerling-com:arm64 .
จากนั้นคุณสามารถผลักดันภาพไปยังที่เก็บ geerlingguy/jeffgeerling-com บน Docker Hub:
docker push geerlingguy/jeffgeerling-com:arm64
หมายเหตุ: ภาพถูกสร้างขึ้นโดยอัตโนมัติและผลักไปที่ Docker Hub ผ่านการกระทำของ GitHub ทุกครั้งที่มีการผลักดันให้กับสาขา
master
ครั้งแรกที่คุณเริ่มใช้โครงการนี้คุณต้องสร้างไฟล์การตั้งค่าในพื้นที่ของคุณ:
cp web/sites/default/example.settings.local.php web/sites/default/settings.local.php
ตรวจสอบให้แน่ใจว่าคุณติดตั้ง Docker จากนั้นเรียกใช้คำสั่งต่อไปนี้ (ในไดเรกทอรีเดียวกับไฟล์ readme นี้):
docker compose up -d
ติดตั้งการพึ่งพา PHP ที่ใช้งาน Composer ภายในคอนเทนเนอร์:
docker compose exec drupal composer install
เยี่ยมชม http: // localhost/เพื่อดูการติดตั้ง Drupal เยี่ยมชม http: // localhost: 8025/เพื่อดู Mailhog
คุณสามารถติดตั้ง Drupal โดยใช้ตัวช่วยสร้างการติดตั้ง แต่เราต้องการใช้ Drush สำหรับระบบอัตโนมัติเพิ่มเติม:
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'
เมื่อถึงจุดหนึ่งฉันจะเขียนวิธีการทำทั้งหมดด้วย Drush อัตโนมัติ
สำหรับตอนนี้:
การกำหนดค่าเวลาใดก็ตามที่มีการเปลี่ยนแปลงหรือมีการอัพเกรดโมดูลหรือ Drupal ใด ๆ คุณควรส่งออกการกำหนดค่าของไซต์โดยใช้คำสั่ง:
docker compose exec drupal bash -c 'vendor/bin/drush config:export -y'
จากนั้นผลักดันการเปลี่ยนแปลงใด ๆ ไปยังที่เก็บ GIT ก่อนที่จะปรับใช้รหัสล่าสุดไปยังเว็บไซต์
docker compose exec drupal bash -c 'composer update' (เพื่ออัปเดตทุกอย่าง)docker compose exec drupal bash -c 'vendor/bin/drush updb -y'docker compose exec drupal bash -c 'vendor/bin/drush config:export -y' คุณสามารถทดสอบรหัสที่กำหนดเองในโครงการนี้โดยใช้ 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'
การกำหนดค่า Docker สำหรับโครงการนี้เปิดใช้งานคอนเทนเนอร์ MailHog ซึ่งมีเว็บ UI ที่ http://127.0.0.1:8025
ไฟล์ php.ini สำหรับสภาพแวดล้อมในท้องถิ่นได้รับการกำหนดค่าโดยอัตโนมัติให้ใช้ mhsendmail เพื่อส่งอีเมลของ PHP ผ่านอินสแตนซ์ Mailhog เมื่อคุณใช้ Dockerfile ของโครงการนี้เพื่อสร้างสภาพแวดล้อม Drupal
เมื่อ Drupal ส่งอีเมลควรมองเห็นได้ใน UI ของ Mailhog