From c685c51f0d26e5dd96116d87250eba3630ecc760 Mon Sep 17 00:00:00 2001 From: Alexander O'Neill Date: Mon, 4 Mar 2024 19:23:52 -0400 Subject: [PATCH] Add separate sample-dev.env file for XDebug. --- README.md | 11 ++ dev.env | 14 --- sample-dev.env | 222 ++++++++++++++++++++++++++++++++++++++ scripts/extra/launch.json | 14 +-- 4 files changed, 240 insertions(+), 21 deletions(-) delete mode 100644 dev.env create mode 100644 sample-dev.env diff --git a/README.md b/README.md index 3727c7cf0..88c541567 100644 --- a/README.md +++ b/README.md @@ -319,6 +319,17 @@ request. You may wish to customize this file to your preference. When you run 'make down' and 'make up' again, XDebug will be gone. +### samplle-dev.env and XDebug + +The default PHP and NGinx configurationns don't work well for +debugging with xdebug, as the timeouts will cause +the connection to be lost after about a minute. + +sample-ddev.env is a copy of sampple.env with the timesouts all +set to 1 hour, so if you wish to run a local development setup that supports debugging +simply copy sample-dev.env to .env before running +your first make command to spin up an environment. + ### Sample launch.json file For Visual Studio: Code users, there is a sample launch.json file in scripts/extras. Put this in diff --git a/dev.env b/dev.env deleted file mode 100644 index 3737f532d..000000000 --- a/dev.env +++ /dev/null @@ -1,14 +0,0 @@ -PHP_MAX_INPUT_TIME=3600 -PHP_DEFAULT_SOCKET_TIMEOUT=3600 -PHP_PROCESS_CONTROL_TIMEOUT=3600 -PHP_REQUEST_TERMINATE_TIMEOUT=3600 -NGINX_CLIENT_BODY_TIMEOUT=3600s -NGINX_FASTCGI_CONNECT_TIMEOUT=3600s -NGINX_FASTCGI_READ_TIMEOUT=3600s -NGINX_FASTCGI_SEND_TIMEOUT=3600s -NGINX_KEEPALIVE_TIMEOUT=3600s -NGINX_LINGERING_TIMEOUT=5s -NGINX_PROXY_CONNECT_TIMEOUT=3600s -NGINX_PROXY_READ_TIMEOUT=3600s -NGINX_PROXY_SEND_TIMEOUT=3600s -NGINX_SEND_TIMEOUT=3600s diff --git a/sample-dev.env b/sample-dev.env new file mode 100644 index 000000000..8d942d7c7 --- /dev/null +++ b/sample-dev.env @@ -0,0 +1,222 @@ +# Environment variables defined in this file apply to both the Makefile and to +# docker-compose.yml +# +# Due to restrictions in the `env-file` format we cannot specify multi-line +# values for environment variables. For this reason the environment +# variables are set on service definitions in the docker-compose.*.yml files, +# rather than defined in `env-file` files. + +# Determines which docker-compose file(s) will be used for the `drupal` service. +# See documentation for more details. +ENVIRONMENT=starter + +# Enable this to generate a docker-compose file that uses secrets. +# If you're running staging, CI, or production, set to true. +USE_SECRETS=true + +############################################################################### +# Environment variables specific to composer. +############################################################################### + +COMPOSE_HTTP_TIMEOUT=480 + +# Also used for naming services in traefik as well as defining network alias and urls. +# For example the `drupal` service will be found at `islandora.${COMPOSE_PROJECT_NAME}.${DRUPAL_SITE_HOST}`. +# See https://docs.docker.com/compose/reference/envvars/ +COMPOSE_PROJECT_NAME=isle-dc + +# Allows building custom image with buildkit. +COMPOSE_DOCKER_CLI_BUILD=1 +DOCKER_BUILDKIT=1 + +# Dockerfile to use when building the custom project. +PROJECT_DRUPAL_DOCKERFILE=Dockerfile + +# Custom namespace for your created Drupal images (eg. your dockerhub username) +# preface this with a URL to use a container registry like Github or Gitlab +# Used in the image name when running `make build` and `make push-image` +CUSTOM_IMAGE_NAMESPACE=mynamespace + +# Image name of custom drupal image +# This is used when pulling a custom image for environments set to custom and +# when building a custom image with make build +CUSTOM_IMAGE_NAME=${COMPOSE_PROJECT_NAME}_drupal + +# Tag for custom image +# This is used when pulling a custom image for environments set to custom and +# when building a custom image with make build +CUSTOM_IMAGE_TAG=latest + +# Packagist repo to use when creating a site with make starter +# Change this if you want to build from a different codebase than the starter site +CODEBASE_PACKAGE=islandora/islandora-starter-site:1.2.0 + +# Includes `traefik` as a service, if false assume we are sharing a traefik +# from another project. +INCLUDE_TRAEFIK_SERVICE=true +TRAEFIK_LOG_LEVEL=ERROR + +# Should we use ACME to generate a SSL Certificate +USE_ACME=false +# Specify email to tie SSL Certificate to with ACME provider +ACME_EMAIL=your-email@example.com +# KeyType used for generating certificate private key. Allow value 'EC256', 'EC384', 'RSA2048', 'RSA4096', 'RSA8192'. +ACME_KEY_TYPE=RSA4096 + +# ACME Defaults for Let's Encrypt Service +# ACME_SERVER=https://acme-v02.api.letsencrypt.org/directory +# Default duration for the certificate is 90 days or 2,160 hours for Let's Encrypt +# ACME_CERT_DURATION=2160 +# ACME_EAB_KID= +# ACME_EAB_HMAC= + +# Includes `watchtower` as a service. +INCLUDE_WATCHTOWER_SERVICE=false + +# Includes `etcd` as a service. +INCLUDE_ETCD_SERVICE=false + +# Includes `code-server` as a service. +INCLUDE_CODE_SERVER_SERVICE=false + +# Choose which database backend to use: mariadb/postgresql +# Services that only support MySQL (Matomo) do not have the option to change. +# Also at this time not all Drupal modules work with PostgresSQL, it is provided +# as option here so it can be tested and fixed at some later date. +DRUPAL_DATABASE_SERVICE=mariadb +FCREPO_DATABASE_SERVICE=mariadb + +# Repository to use for pulling isle-buildkit images, change to `local` +# To use images you have built locally with isle-buildkit, or use your +# custom docker registry if you have set up one. +# +REPOSITORY=islandora + +# The version of the isle-buildkit images, non isle-buildkit images have +# their versions specified explicitly in their respective docker-compose files. +TAG=3.1.4 + +############################################################################### +# Exposed Containers & Ports +############################################################################### + +# Expose Cantaloupe at ${DOMAIN}/cantaloupe +EXPOSE_CANTALOUPE=true + +# Expose Matomo at ${DOMAIN}/matomo +EXPOSE_MATOMO=true + +# Expose Drupal at ${DOMAIN} +EXPOSE_DRUPAL=true + +# Expose MySQL over the given port - DO NOT EXPOSE THIS IN PRODUCTION +EXPOSE_MYSQL=false +MYSQL_PORT=3306 + +# Expose Postgres over the given port - DO NOT EXPOSE THIS IN PRODUCTION +EXPOSE_POSTGRES=false +POSTGRES_PORT=5432 + +# Expose the Traefik dashboard over the given port - DO NOT EXPOSE THIS IN PRODUCTION +EXPOSE_TRAEFIK_DASHBOARD=false +TRAEFIK_DASHBOARD_PORT=8080 + +# Expose Fedora over the given port - Necessary for Canteloupe +EXPOSE_FEDORA=true +FEDORA_PORT=8081 + +# Expose Blazegraph over the given port - DO NOT EXPOSE THIS IN PRODUCTION +EXPOSE_BLAZEGRAPH=false +BLAZEGRAPH_PORT=8082 + +# Expose Activemq over the given port - DO NOT EXPOSE THIS IN PRODUCTION +EXPOSE_ACTIVEMQ=false +ACTIVEMQ_PORT=8161 + +# Expose SOLR over the given port - DO NOT EXPOSE THIS IN PRODUCTION +EXPOSE_SOLR=true +SOLR_PORT=8983 + +# Expose Code Server over the given port - DO NOT EXPOSE THIS IN PRODUCTION +EXPOSE_CODE_SERVER=false +CODE_SERVER_PORT=8443 + +############################################################################### +# Global Environment variables +############################################################################### + +DOMAIN=islandora.traefik.me +SITE=https://${DOMAIN} +DISABLE_SYN=false +FEDORA_6=true +RESTART_POLICY=unless-stopped + +# PHP variables +PHP_MEMORY_LIMIT=256M +PHP_POST_MAX_SIZE=128M +PHP_UPLOAD_MAX_FILESIZE=128M +PHP_MAX_EXECUTION_TIME=30 + +# If you're just demoing or are starting from scratch, use this. +INSTALL_EXISTING_CONFIG=false +DRUPAL_INSTALL_PROFILE=standard + +# If you're installing from an existing codebase, uncomment this +#INSTALL_EXISTING_CONFIG=true +#DRUPAL_INSTALL_PROFILE=minimal + +# If you're experiencing timeouts in Alpaca, consider bumping these +# values for each connector. They are in milliseconds (1000 = 1 second). +ALPACA_OCR_TIMEOUT=300000 +ALPACA_FITS_TIMEOUT=300000 +ALPACA_HOUDINI_TIMEOUT=300000 +ALPACA_HOMARUS_TIMEOUT=300000 + +# Set Memory Limit for each container. +ACTIVEMQ_MEMORY_LIMIT=2G +ALPACA_MEMORY_LIMIT=2G +BLAZEGRAPH_MEMORY_LIMIT=5G +CANTALOUPE_MEMORY_LIMIT=5G +CRAYFITS_MEMORY_LIMIT=1G +DRUPAL_MEMORY_LIMIT=5G +FCREPO_MEMORY_LIMIT=5G +FITS_MEMORY_LIMIT=5G +HOMARUS_MEMORY_LIMIT=1G +HOUDINI_MEMORY_LIMIT=1G +HYPERCUBE_MEMORY_LIMIT=512M +IDE_MEMORY_LIMIT=5G +MARIADB_MEMORY_LIMIT=1G +MATOMO_MEMORY_LIMIT=1G +MILLINER_MEMORY_LIMIT=1G +RECAST_MEMORY_LIMIT=1G +SOLR_MEMORY_LIMIT=8G +TRAEFIK_MEMORY_LIMIT=8G +WATCHTOWER_MEMORY_LIMIT=2G + +# Configuration to enable the custom delegate script for Cantaloupe +CANTALOUPE_DELEGATE_SCRIPT_ENABLED=false +CANTALOUPE_DELEGATE_SCRIPT_PATHNAME=/opt/tomcat/bin/delegates.rb +CANTALOUPE_HTTPSOURCE_LOOKUP_STRATEGY=BasicLookupStrategy + +# Path to include in tar file for exported public files +# If set to . the files will be exported wherever you specify as DEST +# when running make drupal-public-files-import +# If set to anything else, that path will be added to DEST +PUBLIC_FILES_TAR_DUMP_PATH=. + + +PHP_MAX_EXECUTION_TIME=3600 +PHP_MAX_INPUT_TIME=3600 +PHP_DEFAULT_SOCKET_TIMEOUT=3600 +PHP_PROCESS_CONTROL_TIMEOUT=3600 +PHP_REQUEST_TERMINATE_TIMEOUT=3600 +NGINX_CLIENT_BODY_TIMEOUT=3600s +NGINX_FASTCGI_CONNECT_TIMEOUT=3600s +NGINX_FASTCGI_READ_TIMEOUT=3600s +NGINX_FASTCGI_SEND_TIMEOUT=3600s +NGINX_KEEPALIVE_TIMEOUT=3600s +NGINX_LINGERING_TIMEOUT=5s +NGINX_PROXY_CONNECT_TIMEOUT=3600s +NGINX_PROXY_READ_TIMEOUT=3600s +NGINX_PROXY_SEND_TIMEOUT=3600s +NGINX_SEND_TIMEOUT=3600s diff --git a/scripts/extra/launch.json b/scripts/extra/launch.json index a3183a567..67d731f73 100644 --- a/scripts/extra/launch.json +++ b/scripts/extra/launch.json @@ -4,13 +4,6 @@ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ - { - "name": "Launch Chrome", - "request": "launch", - "type": "chrome", - "url": "https://islandora.traefik.me", - "webRoot": "${workspaceFolder}/codebase/web" - }, { "name": "Listen for Xdebug", "type": "php", @@ -20,6 +13,13 @@ "/var/www/drupal": "${workspaceRoot}/codebase", } }, + { + "name": "Launch Chrome", + "request": "launch", + "type": "chrome", + "url": "https://islandora.traefik.me", + "webRoot": "${workspaceFolder}/codebase/web" + }, { "name": "Launch currently open script", "type": "php",