ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [n8n] selfhosting Puppeteer 설정
    컴퓨터 2024. 12. 15. 17:34

    Self-hosting 시 Puppeteer 를 실행하면 에러 발생

     

    설치 환경

    Digital Ocean 위에 공식 설치 가이드 문서를 따라 설치

     

    youtube-transcript 나 웹 스크래핑을 위해 puppeteer 를 설치

     

    막상 실행하면 아래와 같은 에러 발생 

     

    기존 컨테이너 제거

    sudo docker compose down
    
    # docker-compose.yml 수정
    vi docker-compose.yml

     

    version: "3.7"
    
    services:
      caddy:
        image: caddy:latest
        restart: unless-stopped
        ports:
          - "80:80"
          - "443:443"
        volumes:
          - caddy_data:/data
          - ${DATA_FOLDER}/caddy_config:/config
          - ${DATA_FOLDER}/caddy_config/Caddyfile:/etc/caddy/Caddyfile
    
      n8n:
        image: docker.n8n.io/n8nio/n8n
        restart: always
        ports:
          - 5678:5678
        environment:
          - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
          - N8N_PORT=5678
          - N8N_PROTOCOL=https
          - NODE_ENV=production
          - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
          - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
          - PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser ## 이부분 추가
        volumes:
          - n8n_data:/home/node/.n8n
          - ${DATA_FOLDER}/local_files:/files
    
    volumes:
      caddy_data:
        external: true
      n8n_data:
        external: true

     

    수정된 파일로 컨테이너 생성

    sudo docker compose up -d
    
    # 잘 생성되었나 확인
    sudo docker ps
    
    # docker.n8n.io/n8nio/n8n의 CONTAINER ID확인
    # root로 컨테이너에 접속
    sudo docker exec -it --user root [CONTAINER ID] sh
    
    # package 설치
    apk update
    apk add --no-cache chromium nss freetype harfbuzz ca-certificates ttf-freefont nodejs yarn 
    yarn add puppeteer@13.5.0
    
    addgroup -S pptruser && adduser -S -G pptruser pptruser
    mkdir -p /home/pptruser/Downloads /app
    chown -R pptruser:pptruser /home/pptruser /app

     

     

    이제 youtube Transcript는 잘 작동함

     

    Puppeteer는 추가 설정 필요

     

    Options에 Launch Arguments로 아래 5개 추가

    --ignore-certificate-errors
    --no-sandbox
    --disable-setuid-sandbox
    --disable-accelerated-2d-canvas
    --disable-gpu #위 캡쳐는 오타 (Dash 하나 빠짐)

     

     

     

    내용 추가

    기존 컨테이너 제거

    chromium 관련 Memory leak 이 있어보임. 프로세스가 완전하게 종료되지 않는 상황이 있어 확인이 필요함.

Designed by Tistory.