From 340e8e4beb18707822cacf3fea22b2ebcd33a832 Mon Sep 17 00:00:00 2001 From: lee-hyeon-cheol Date: Tue, 22 Sep 2026 15:12:25 +0900 Subject: [PATCH] =?UTF-8?q?chore(langfuse):=20=EA=B3=A0=EA=B0=9D=EC=82=AC?= =?UTF-8?q?=20-12=20=EB=8A=94=20NAT=20=EC=97=86=EB=8A=94=20=EB=8F=84?= =?UTF-8?q?=EC=BB=A4=20=E2=80=94=20host=20=EB=84=A4=ED=8A=B8=EC=9B=8C?= =?UTF-8?q?=ED=81=AC=20=EC=98=A4=EB=B2=84=EB=9D=BC=EC=9D=B4=EB=93=9C(minio?= =?UTF-8?q?=209100,=20=EC=9B=B9=208915)=20+=20dockerd=20=EC=88=98=EB=8F=99?= =?UTF-8?q?=20=EA=B8=B0=EB=8F=99=20=EC=A0=88=EC=B0=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 --- 5_django_backend/deploy/langfuse/README.md | 8 +++- .../langfuse/docker-compose.customer.yml | 47 +++++++++++++++++-- 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/5_django_backend/deploy/langfuse/README.md b/5_django_backend/deploy/langfuse/README.md index 5924e00..f2f6b44 100644 --- a/5_django_backend/deploy/langfuse/README.md +++ b/5_django_backend/deploy/langfuse/README.md @@ -14,11 +14,17 @@ ls -la langfuse-images.tar.gz # 3~4GB. 메일 안 됨 — 인프라팀 반 ## 2. -12 에서 띄우기 +-12 는 systemd 도 iptables 권한도 없는 컨테이너라 도커 데몬을 손으로, NAT 끄고 띄움(부팅 때마다): +```bash +nohup dockerd --iptables=false --ip6tables=false --bridge=none > /var/log/dockerd.log 2>&1 & +``` +도커 설치 자체는 `.deb` 반입 → `dpkg -i` (docker-deb.zip + libseccomp2·netbase·iptables/nftables 묶음 netdeb.zip). + ```bash docker load < langfuse-images.tar.gz cd /www/abap-ito/code-assistant/5_django_backend/deploy/langfuse cp .env.example .env && vi .env # CHANGEME 전부 교체. NEXTAUTH_URL=http://10.196.81.34:8915 -docker compose -f docker-compose.yml -f docker-compose.customer.yml up -d # 8915 → 3000 (customer 파일이 포트만 바꿈) +docker compose -f docker-compose.yml -f docker-compose.customer.yml up -d # host 네트워크 + 웹 8915 (customer 파일 머리말 참고) docker compose ps # 6개 healthy 까지 1~2분 curl -s http://127.0.0.1:3000/api/public/health ``` diff --git a/5_django_backend/deploy/langfuse/docker-compose.customer.yml b/5_django_backend/deploy/langfuse/docker-compose.customer.yml index 4736f67..e4b187a 100644 --- a/5_django_backend/deploy/langfuse/docker-compose.customer.yml +++ b/5_django_backend/deploy/langfuse/docker-compose.customer.yml @@ -1,6 +1,47 @@ -# 고객사 -12 용 — 바깥 포트 8915(놀고 있는 것, 2026-09-22 실측)를 웹 3000 에 붙임. +# 고객사 -12 용 오버라이드 (2026-09-22 실측 기준) +# - -12 는 컨테이너 안이라 iptables 권한이 없음 → dockerd 를 --iptables=false --bridge=none 으로 띄움 +# → 컨테이너끼리 브릿지 네트워크가 없으니 전부 host 네트워크로, 서로는 127.0.0.1:<포트> 로 부름 +# - minio 는 clickhouse 와 9000 이 겹쳐 9100 으로 옮김 +# - 웹은 바깥에서 닿는 빈 포트 8915 로 직접 listen (PORT env) +# # docker compose -f docker-compose.yml -f docker-compose.customer.yml up -d services: langfuse-web: - ports: !override - - 8915:3000 + network_mode: host + ports: !override [] + environment: + PORT: "8915" + DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/postgres + CLICKHOUSE_URL: http://127.0.0.1:8123 + CLICKHOUSE_MIGRATION_URL: clickhouse://127.0.0.1:9000 + REDIS_HOST: 127.0.0.1 + LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT: http://127.0.0.1:9100 + LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT: http://127.0.0.1:9100 + LANGFUSE_S3_MEDIA_UPLOAD_INTERNAL_ENDPOINT: http://127.0.0.1:9100 + LANGFUSE_S3_BATCH_EXPORT_ENDPOINT: http://127.0.0.1:9100 + langfuse-worker: + network_mode: host + ports: !override [] + environment: + DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/postgres + CLICKHOUSE_URL: http://127.0.0.1:8123 + CLICKHOUSE_MIGRATION_URL: clickhouse://127.0.0.1:9000 + REDIS_HOST: 127.0.0.1 + LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT: http://127.0.0.1:9100 + LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT: http://127.0.0.1:9100 + LANGFUSE_S3_BATCH_EXPORT_ENDPOINT: http://127.0.0.1:9100 + clickhouse: + network_mode: host + ports: !override [] + minio: + network_mode: host + ports: !override [] + command: -c 'mkdir -p /data/langfuse && minio server --address ":9100" --console-address ":9101" /data' + environment: + MC_HOST_local: http://minio:miniosecret@127.0.0.1:9100 # healthcheck(mc ready local)가 9100 을 보게 + redis: + network_mode: host + ports: !override [] + postgres: + network_mode: host + ports: !override []