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 Engine과 Install 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)
- Dify 소스 코드 안의
docker디렉터리로 이동합니다.
cd dify/docker
- 필수 환경 설정 파일을 복사합니다.
cp .env.example .env
나중에 배포를 커스터마이즈하려면 Customize를 참고하세요.
- 컨테이너를 시작합니다.
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— 스토리지 파일 권한을 설정하고 끝나면 종료해요
- 모든 컨테이너가 정상 기동됐는지 확인합니다.
docker compose ps
각 컨테이너는 Up 또는 healthy 상태여야 해요. init_permissions가 Exited 상태인 것은 정상이에요.
접속 (Access)
- 관리자 초기화 페이지를 열어 관리자 계정을 설정합니다.
# 로컬 환경
http://localhost/install
# 서버 환경
http://your_server_ip/install
- 관리자 계정 설정을 마친 뒤 아래 주소로 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와 비교해 새로 추가되거나 변경된 변수가 있는지 확인하세요.