wodby/docker4drupal

XDebug setup on WSL.

hzswdef opened this issue · 0 comments

Hi there, I went for an issue with the XDebug setup on Windows 10, WSL1 (Ubuntu 22.04) + PhpStorm.

Linux like docker-compose.yml configuration for xdebug won't work on Windows. PhpStorm configuration for XDebug is the same as for Linux.

docker-compose.yml

version: "3.7"

services:
  mariadb:
    image: wodby/mariadb:$MARIADB_TAG
    container_name: "${PROJECT_NAME}_mariadb"
    stop_grace_period: 30s
    environment:
      MYSQL_ROOT_PASSWORD: $DB_ROOT_PASSWORD
      MYSQL_DATABASE: $DB_NAME
      MYSQL_USER: $DB_USER
      MYSQL_PASSWORD: $DB_PASSWORD

  php:
    image: wodby/drupal-php:$PHP_TAG
    container_name: "${PROJECT_NAME}_php"
    environment:
      PHP_SENDMAIL_PATH: '"/usr/bin/dos2unix -u | /usr/sbin/ssmtp -t -f"'
      SSMTP_MAILHUB: mailhog:1025
      PHP_FPM_USER: wodby
      PHP_MAX_INPUT_TIME: 180
      PHP_POST_MAX_SIZE: 128M
      PHP_UPLOAD_MAX_FILESIZE: 128M
      PHP_MAX_EXECUTION_TIME: 180
      PHP_FPM_GROUP: wodby
      DRUSH_OPTIONS_URI: $PROJECT_BASE_URL
      PHP_XDEBUG_MODE: debug
      PHP_XDEBUG: 1
      DRUSH_ALLOW_XDEBUG: 1
      PHP_XDEBUG_REMOTE_CONNECT_BACK: 0
      PHP_XDEBUG_START_WITH_REQUEST: "yes"
      PHP_XDEBUG_LOG_LEVEL: 0
      PHP_XDEBUG_DEFAULT_ENABLE: 1
      PHP_IDE_CONFIG: serverName=PHPSTORM
      PHP_XDEBUG_IDEKEY: "PHPSTORM"
      PHP_XDEBUG_REMOTE_HOST: 10.0.75.1
      PHP_FPM_CLEAR_ENV: 'false'
    volumes:
    - ./../../:/var/www/html:cached

  crond:
    image: wodby/drupal-php:$PHP_TAG
    container_name: "${PROJECT_NAME}_crond"
    environment:
      CRONTAB: "0 * * * * drush -r /var/www/html/web cron"
    command: sudo -E crond -f -d 0
    volumes:
    - ./../../:/var/www/html:cached

  nginx:
    image: wodby/nginx:$NGINX_TAG
    container_name: "${PROJECT_NAME}_nginx"
    depends_on:
    - php
    environment:
      NGINX_STATIC_OPEN_FILE_CACHE: "off"
      NGINX_ERROR_LOG_LEVEL: debug
      NGINX_BACKEND_HOST: php
      NGINX_SERVER_ROOT: /var/www/html/web
      NGINX_VHOST_PRESET: $NGINX_VHOST_PRESET
    volumes:
    - ./../../:/var/www/html:cached
    labels:
    - "traefik.http.routers.${PROJECT_NAME}_nginx.rule=Host(`${PROJECT_BASE_URL}`)"

  mailhog:
    image: mailhog/mailhog
    container_name: "${PROJECT_NAME}_mailhog"
    labels:
    - "traefik.http.services.${PROJECT_NAME}_mailhog.loadbalancer.server.port=8025"
    - "traefik.http.routers.${PROJECT_NAME}_mailhog.rule=Host(`mailhog.${PROJECT_BASE_URL}`)"

  adminer:
    container_name: "${PROJECT_NAME}_adminer"
    image: wodby/adminer:$ADMINER_TAG
    environment:
      ADMINER_DEFAULT_DB_HOST: $DB_HOST
      ADMINER_DEFAULT_DB_NAME: $DB_NAME
    labels:
    - "traefik.http.routers.${PROJECT_NAME}_adminer.rule=Host(`adminer.${PROJECT_BASE_URL}`)"

  node:
    image: wodby/node:$NODE_TAG
    container_name: "${PROJECT_NAME}_node"
    working_dir: /var/www/html/web/themes/custom/bancho
    user: "1000:1000"
    labels:
    - "traefik.http.services.${PROJECT_NAME}_node.loadbalancer.server.port=3000"
    - "traefik.http.routers.${PROJECT_NAME}_node.rule=Host(`node.${PROJECT_BASE_URL}`)"
    expose:
    - "3000"
    volumes:
    - ./../../:/var/www/html
    command: sh -c 'npm install && npm run watch'

  traefik:
    image: traefik:v2.0
    container_name: "${PROJECT_NAME}_traefik"
    command: --api.insecure=true --providers.docker
    ports:
    - "${PROJECT_PORT}:80"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

volumes:
  files: