Peringatan! Informasikan kepada pod dan tim infra tentang perubahan yang akan Anda lakukan pada repositori ini. Setiap perubahan berdampak pada proyek hilir, dan pembangunan kami bergantung padanya.
Lingkungan Drupal berbasis Docker untuk pengembangan dan pengujian lokal.
Kerangka pengujian yang didukung: PHPUnit, Behat
Direkomendasikan untuk digunakan bersama dengan plugin pronovix/drupal-qa
Composer.
Pemberitahuan: Selalu tarik tag tertentu atau komit dari repositori ini! Mungkin ada perubahan besar!
$ git clone https://github.com/Pronovix/docker-drupal-dev.git drupal-dev
$ mkdir build ;
$ ln -s drupal-dev/docker-compose.yml
$ ln -s drupal-dev/Dockerfile
$ printf " COMPOSE_PROJECT_NAME=[YOUR_PROJECT_NAME]n#You can find examples for available customization in the drupal-dev/examples/.env file.n " > .env && source .env
$ docker compose up -d --build
Ganti [YOUR_PROJECT_NAME] dengan string yang hanya berisi huruf kecil dan tanda hubung. Tidak boleh mengandung spasi atau karakter khusus apa pun. Contoh: proyek_saya_awesome_
$ docker compose exec php composer create-project drupal-composer/drupal-project:8.x-dev ../build -n
Sekarang lanjutkan dengan langkah opsional , namun sangat disarankan. settings*.php
dan development.services.yml.dist
dari folder drupal
ke build/web/sites
. settings*.php
dan development.services.yml.dist
dari folder drupal
ke build/web/sites
. Symlink harus relatif terhadap jalur tujuan sedemikian rupa sehingga dapat diakses di dalam container php
juga.
$ ln -s ../../../../drupal-dev/drupal/settings.php build/web/sites/default/settings.php
$ ln -s ../../../../drupal-dev/drupal/settings.shared.php build/web/sites/default/settings.shared.php
$ ln -s ../../../../drupal-dev/drupal/settings.testing.php build/web/sites/default/settings.testing.php
$ ln -s ../../../drupal-dev/drupal/development.services.yml.dist build/web/sites/development.services.yml.dist
(Jika file settings.php
sudah ada maka hapus atau ganti namanya menjadi settings.local.php
.)
Jika Anda berhasil menghubungkan file-file ini maka lingkungan Anda siap digunakan. Anda dapat menginstal situs di UI atau dengan Drush.
Anda dapat menginstal situs dengan profil instalasi minimal seperti ini dengan Drush: docker compose exec php drush si minimal -y
. Jika folder build/config
tidak ada, Anda harus menambahkan --db-url=$SIMPLETEST_DB
di akhir perintah karena Drush tidak akan membaca konfigurasi dari settings.php yang disinkronkan. (Ini mungkin bug.)
Periksa port saat ini dari wadah server web yang sedang berjalan dengan docker compose ps webserver
:
Name Command State Ports
--------------------------------------------------------------------------------------------------
my_module_webserver /docker-entrypoint.sh sudo ... Up 0.0.0.0:32794- > 80/tcp
Catatan: Port yang terbuka berubah setiap kali penampung webserver
dimulai ulang.
Jika Anda membuat URL login dengan Drush, ganti webserver
di url login dengan localhost:[PORT]
, seperti: http:/localhost:32794/user/reset/1/1561455114/sKYjEf26WZ6bzuh-KrNY425_3KCppiCHI8SxKZ158Lw/login.
Dalam konfigurasi ini semuanya telah dikonfigurasikan untuk menjalankan pengujian PHPUnit Drupal 8, termasuk namun tidak terbatas pada pengujian Javascript PHPUnit. Jika Anda telah menginstal PHPUnit sebagai dependensi Komposer di proyek Anda, menjalankan pengujian PHPUnit sangatlah mudah, berikut beberapa contohnya:
$ docker compose run --rm php ./vendor/bin/phpunit -c web/core -v --debug --printer ' DrupalTestsListenersHtmlOutputPrinter ' web/core/modules/node # Run all tests of the node module.
$ docker compose run --rm php ./vendor/bin/phpunit -c web/core -v --debug --printer ' DrupalTestsListenersHtmlOutputPrinter ' web/core/modules/node/tests/src/Functional/NodeCreationTest.php # Run one specific test from the node module.
$ docker compose run --rm php ./vendor/bin/phpunit -c web/core -v --debug --printer ' DrupalTestsListenersHtmlOutputPrinter ' --testsuite kernel # Run all kernel tests.
Anda dapat menemukan informasi lebih lanjut tentang parameter PHPUnit CLI yang tersedia dan opsi konfigurasi di dokumentasi resmi PHPUnit.
docker-compose.yml
berisi beberapa pengaturan Behat default yang memungkinkan untuk menjalankan tes Behat di dalam container PHP dengan lancar. Periksa variabel lingkungan BEHAT_PARAMS
dalam definisi wadah php
.
behat.yml.dist
ke folder build
dengan cp drupal-dev/examples/behat/behat.yml.dist build/behat.yml.dist
. Anda juga dapat menambahkan behat.yml
Anda dengan override ke direktori ini jika ada.drupal-dev/examples/behat/login.feature
ke build/behat
dengan mkdir build/behat && cp drupal-dev/examples/behat/login.feature build/behat
.build/behat
: docker compose exec php php vendor/bin/behat
.Anda dapat menemukan informasi lebih lanjut tentang parameter Behat CLI yang tersedia dan opsi konfigurasi di dokumentasi resmi ekstensi Behat dan Drupal Behat.
Direkomendasikan untuk menginstal paket pronovix/drupal-qa
dengan Composer karena paket ini mengirimkan banyak ekstensi Behat berguna yang dapat membuat hidup Anda lebih mudah saat Anda menguji sebuah situs.
MailHog menangkap semua email keluar dari lingkungan pengembangan ini. (Kecuali Anda mengganti konfigurasi sistem email default di Drupal.)
Jika Anda ingin meninjau semua email yang terkirim, periksa port lokal wadah mailhog
dengan docker compose ps mailhog
:
Name Command State Ports
----------------------------------------------------------------------------------
my_module_mailhog MailHog Up 1025/tcp, 0.0.0.0:32772- > 8025/tcp
dan buka UI admin MailHog di browser Anda, misalnya http://localhost:32772
.