컴퓨터
[n8n] selfhosting Puppeteer 설정
Hikasiru
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 이 있어보임. 프로세스가 완전하게 종료되지 않는 상황이 있어 확인이 필요함.