EISDIR: illegal operation on a directory, read

version: '3.8'

volumes:
  postgres_data:
  n8n_data:

services:
  postgres:
    image: postgres:16
    restart: unless-stopped
    ports:
      - 5432:5432
    environment:
      - POSTGRES_USER
      - POSTGRES_PASSWORD
      - POSTGRES_DB
      - POSTGRES_NON_ROOT_USER
      - POSTGRES_NON_ROOT_PASSWORD
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
      - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
      interval: 5s
      timeout: 5s
      retries: 5

  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: unless-stopped
    pull_policy: always
    container_name: n8n
    environment:
      #- N8N_HOST=${N8N_HOST}
      #- N8N_PORT=5678
      #- N8N_PROTOCOL=${N8N_PROTOCOL}
      #- NODE_ENV=production
      - WEBHOOK_URL=${WEBHOOK_TUNNEL_URL} 
      #- WEBHOOK_URL=https://n8n.tulipesque.com/
      - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
      # - N8N_PUSH_BACKEND=sse
      - VUE_APP_URL_BASE_API=${VUE_APP_URL_BASE_API}
      - WEBHOOK_TUNNEL_URL=${WEBHOOK_TUNNEL_URL}
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
    ports:
      - 5678:5678
    links:
      - postgres
    volumes:
      - ./n8n_data:/home/node/.n8n
      - ./tmp:/tmp
      - ./pki:/opt/custom-certificates
    depends_on:
      postgres:
        condition: service_healthy

It needs a file path

What you provide is a directory path

Give some examples

/tmp → directory

/tmp/test.txt → file

You should at least know what file your are looking to.

Otherwise you need other way to search the file first.