Docker Compose로 Dify 배포하기

Docker Compose로 Dify 배포하기

공통 배포 질문은 FAQs를 참고하세요.

배포 전 준비

배포를 시작하기 전에 머신이 아래 최소 시스템 요구사항을 충족하는지 확인해요.

하드웨어

  • CPU >= 2 Core
  • RAM >= 4 GiB

소프트웨어

운영체제 필요한 소프트웨어 참고
macOS 10.14 이상 Docker Desktop + Docker Compose 2.24.0+ Docker 가상 머신에 최소 2개의 가상 CPU와 8 GiB 메모리를 할당하세요. 설치 방법은 Install Docker Desktop on Mac 참고.
Linux 배포판 Docker 19.03+, Docker Compose 2.24.0+ 설치 방법은 Install Docker EngineInstall Docker Compose 참고.
WSL 2를 활성화한 Windows Docker Desktop + Docker Compose 2.24.0+ Linux 컨테이너에 묶이는 소스 코드와 데이터는 Windows 파일 시스템이 아니라 Linux 파일 시스템에 두는 게 좋아요. 설치 방법은 Install Docker Desktop on Windows 참고.

배포하고 시작하기

1. Dify 클론 (Clone Dify)

Dify 소스 코드를 로컬 머신에 클론합니다.

git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git

이 명령은 git, curl, jq가 필요해요. command not found 오류가 나면 빠진 도구를 설치하고 다시 실행하세요.

2. Dify 시작하기 (Start Dify)

  1. Dify 소스 코드 안의 docker 디렉터리로 이동합니다.
cd dify/docker
  1. 필수 환경 설정 파일을 복사합니다.
cp .env.example .env

나중에 배포를 커스터마이즈하려면 Customize를 참고하세요.

  1. 컨테이너를 시작합니다.

Dify는 Docker Compose 2.24.0 이상이 필요해요. docker compose version으로 확인해보세요.

docker compose up -d

다음 컨테이너들이 시작됩니다.

  • 코어 서비스 7개: api, api_websocket, worker, worker_beat, web, plugin_daemon, agent_backend
  • 의존 컴포넌트 8개: weaviate, db_postgres, redis, nginx, ssrf_proxy, agent_ssrf_proxy, sandbox, local_sandbox
  • 1회성 태스크 1개: init_permissions — 스토리지 파일 권한을 설정하고 끝나면 종료해요
  1. 모든 컨테이너가 정상 기동됐는지 확인합니다.
docker compose ps

각 컨테이너는 Up 또는 healthy 상태여야 해요. init_permissionsExited 상태인 것은 정상이에요.

접속 (Access)

  1. 관리자 초기화 페이지를 열어 관리자 계정을 설정합니다.
# 로컬 환경
http://localhost/install

# 서버 환경
http://your_server_ip/install
  1. 관리자 계정 설정을 마친 뒤 아래 주소로 Dify에 로그인합니다.
# 로컬 환경
http://localhost

# 서버 환경
http://your_server_ip

커스터마이즈 (Customize)

배포를 커스터마이즈하려면 해당 파일의 환경 변수를 수정하고 Dify를 재시작하면 돼요.

1. 환경 변수 수정

  • 필수 시작 값docker/.env에 있어요. 배포 때 docker/.env.example에서 복사해 만든 파일이죠. 이 값을 직접 수정합니다.
  • 선택 사항 또는 제공자별 설정docker/envs/ 아래에 템플릿이 있어요. 기본값을 덮어쓰려면 해당 템플릿을 복사한 뒤(.example 접미사를 떼고) 사본을 수정합니다. 예:
cd dify/docker
cp envs/vectorstores/milvus.env.example envs/vectorstores/milvus.env

docker/.env의 값이 docker/envs/*.env 파일의 값보다 우선해요.

모든 변수에 대한 설명은 Environment Variables를 참고하세요.

2. Dify 재시작

docker compose down
docker compose up -d

업그레이드 (Upgrade)

업그레이드 단계는 릴리스마다 다를 수 있어요. 목표 버전의 업그레이드 가이드는 Releases 페이지에서 확인하세요.

업그레이드 후에는 각 .env.example을 대응하는 .env와 비교해 새로 추가되거나 변경된 변수가 있는지 확인하세요.