felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

PHP docker remote debug #215

Open felix-cao opened 1 year ago

felix-cao commented 1 year ago

一、docker-compose.yml

# https://docs.docker.com/compose/compose-file/compose-file-v3/
version: '3.7'
services:
  db:
    image: mysql:8.0.23 # 使用哪个镜像, 类似 docker run 指定的镜像名
    container_name: echargecloud_db # 给当前容器指定一个名称, = docker run --name 参数
    command: --default-authentication-plugin=mysql_native_password --sql_mode=NO_ENGINE_SUBSTITUTION
    volumes: # 当前容器和宿主机指定数据卷,类似 docker run -v, 使用绝对路径时,必须先创建。
      - db_data:/var/lib/mysql
    ports:
      - 3306:3306 # 宿主机与容器的端口映射,类似 docker run -p 参数
    networks:
      - internal
    environment:  # 给当前容器启动指定环境,类似 docker run -e MYSQL_ROOT_PASSWORD=root
      MYSQL_ROOT_PASSWORD: my-super-secret-local-password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: zongfei
      MYSQL_PASSWORD: zongfei
  app:
    image: webdevops/php-nginx-dev:8.0
    container_name: echargecloud_app
    working_dir: /app
    networks:
      - internal
    #command: bash -c 'sleep ${SLEEP_TIMEOUT} && npm run migration && node --max-old-space-size=1200 index.js'
    environment:
      WEB_DOCUMENT_ROOT: /app
      XDEBUG_REMOTE_AUTOSTART: 'true'
      XDEBUG_MODE: debug
      XDEBUG_CONFIG: client_host=host.docker.internal client_port=9003
      DB_HOST: echargecloud_db
      DB_USERNAME: zongfei
      DB_PASSWORD: zongfei
      DB_TABLE: wordpress
    ports:
      - 8080:80
    volumes:
      - ./:/app:rw,cached
    depends_on:
      - db
networks:
  internal:
    driver: bridge
volumes: # 声明数据卷别名
    db_data:

docker-compose up

二、PHP remote debug in VSCODE

{
  "version": "0.2.0",
  "configurations": [

    {
      "name": "Attach remote XDebug",
      "type": "php",
      "request": "launch",
      "hostname": "localhost",
      "log": true,
      "port": 9003,
      "pathMappings": {
        "/app": "${workspaceFolder}",
        "/var/www/html": "${workspaceFolder}",
      }
    }
  ]
}