n8n + Execute Command 노드, 도커에서 쓰려면 이렇게!

n8n + Execute Command 노드, 도커에서 쓰려면 이렇게!
“단순함은 효율의 영혼이다.”오스틴 프리먼 (Austin Freeman)

자동화를 사랑하는 사람이라면 한 번쯤 n8n을 만져보셨을 텐데요, 혹시... "n8n에서 외부 명령어도 실행할 수 있어?" 하고 궁금해본 적 있으세요? 🙋‍♀️
있다면, 딱 기다리던 글이에요. 오늘은 n8n의 Execute Command 노드를 샅샅이 파헤치고, 특히 Docker 환경에서의 제한을 어떻게 우아하게 극복할 수 있는지까지! 속 시원하게 알려드릴게요.


🤖 "명령어야 나와라~!" Execute Command 노드란?

이 노드, 마치 비밀 도구 꺼내는 도라에몽 같달까요? ✨

  • 시스템 명령어 실행도 뚝딱!
  • 파이썬 스크립트도 쓱쓱~
  • 심지어 원격 서버까지 슥~ 제어 가능!

예를 들어 python3 /data/scripts/process.py 같은 명령어 하나로, n8n이 데이터를 분석하고 정리하고, 이메일까지 착착 보내주는 마법 같은 자동화를 구현할 수 있죠.


🐳 그런데 말입니다... Docker 환경에서는?

n8n을 Docker로 돌리고 있다면, 여기에 반전 스토리가 있어요.

🙀 “Execute Command 노드를 썼더니 안 돌아간다고?!”

💥 그 이유는?

  • 명령어는 컨테이너 안에서만 실행돼요.
  • 기본 n8n 이미지에는 python3 같은 필수 도구가 빠져있어요.
  • 외부 서버나 다른 컨테이너에 접근하려면 권한과 마운트 설정이 필요해요.

그러니까, 아무 명령어나 돌릴 수는 없고, 환경 세팅을 제대로 해줘야 명령어의 마법이 펼쳐지는 거죠.


🧙‍♀️ 그래서 준비했어요! 커스텀 Docker 이미지 + 공유 폴더 마법 조합

n8n의 잠재력을 200% 끌어내는 핵심 전략, 알려드릴게요.

✅ 목표는 이거예요:

  1. python3, curl 같은 툴들을 이미지에 내장!
  2. 자주 쓰는 파이썬 라이브러리도 미리 설치!
  3. 호스트의 코드 폴더를 /data/scripts볼륨 마운트해서, 스크립트 바뀌어도 바로 반영!

🧾 Dockerfile 핵심 요약:

FROM n8nio/n8n:latest

USER root

RUN apk add --no-cache python3 py3-pip docker-cli curl \
    && pip3 install pandas requests numpy

RUN mkdir -p /data/scripts && chmod -R 755 /data/scripts

USER node

👏 이렇게 하면, n8n 속 Execute Command 노드에서 python3도, curl도 걱정 없이 바로 쓸 수 있어요!


🧩 docker-compose.yml도 한번에 셋팅하기

volumes:
  - ./scripts:/data/scripts
  - /var/run/docker.sock:/var/run/docker.sock

이 조합, 진짜 꿀입니다 🍯
./scripts 폴더에 파이썬 파일만 넣으면, n8n이 그것들을 호출해서 데이터 슝슝~ 처리해줄 수 있어요.
게다가 docker.sock을 마운트하면, 컨테이너 안에서 docker psdocker exec도 가능해져요!


✨ n8n에서 Execute Command 노드 설정은 이렇게!

python3 /data/scripts/process_data.py '{{ JSON.stringify($json) }}'

이렇게 설정해두면, 이전 노드에서 받은 데이터를 파이썬 스크립트에 넘겨주고, 그 결과를 기반으로 다음 작업까지 쭉 이어갈 수 있어요. 완전 유기적인 플로우죠!


⚠️ 잠깐! 보안은 꼭 챙기셔야 해요

  • docker.sock은 강력한 권한을 줘요. 되도록 신뢰된 환경에서만!
  • 비밀번호나 민감 정보는 .env로 따로 관리해 주세요.

✅ 요약 요약~! (한 장 정리 느낌으로)

항목 내용 요약
사용 노드 Execute Command 노드
할 수 있는 일 명령어 실행, 파이썬 스크립트 호출, 원격 제어까지 OK!
Docker 환경 한계 기본 이미지에 도구 없음, 컨테이너 내부에서만 실행 가능
해결 방법 커스텀 이미지 + 코드 공유 볼륨 구성
핵심 디렉토리 /data/scripts
실행 예시 python3 /data/scripts/myscript.py '{{ $json }}'

💬 직접 해보는 게 제일 빨라요!

고블로는 이걸 직접 돌려보고 "와~ 이거 진짜 자동화 꿀잼이다!" 했던 기억이 있어요.
단순 반복 작업이 쏙쏙 줄어드니까, 하루에 여유 시간이 확 늘어난 느낌이랄까요? ☕
여러분도 n8n과 Execute Command 노드를 활용해서 진짜 나만의 스마트한 자동화 시스템 만들어보세요!