# scripts/start — invyone 도커 기동 스크립트 플랫폼별 1-클릭 실행 스크립트. `docker/dev/docker-compose.invyone.yml` 을 기준으로 프론트엔드 + 백엔드-스프링 컨테이너를 자동 기동합니다. ## 파일 구성 | 파일 | 플랫폼 | 실행 방법 | |---|---|---| | `invyone-start-docker-all.bat` | Windows | 더블클릭 또는 cmd 에서 실행 | | `invyone-start-docker-all.sh` | Linux | `./invyone-start-docker-all.sh` | | `invyone-start-docker-all.command` | macOS | Finder 더블클릭 (Terminal 자동 오픈) | ## 하는 일 1. `docker` CLI 설치 여부 + daemon 실행 여부 체크 2. `docker compose -f docker/dev/docker-compose.invyone.yml up -d` 실행 3. 컨테이너 상태 + 접속 URL 안내 출력 ## 접속 URL (기동 후) | 대상 | URL | |---|---| | Frontend | `http://localhost:9772` | | Backend API | `http://localhost:8083/api` | | 테넌트 (서브도메인) | `http://.localhost:9772` — 예: `http://test01.localhost:9772` | 서브도메인 멀티테넌시는 `*.localhost` RFC 6761 자동 매핑을 이용합니다 (Chrome / Firefox / Edge 기본 지원, hosts 편집 · DNS 설정 불필요). ## 리눅스/맥 첫 실행 전 — 실행 권한 1회 ```bash chmod +x scripts/start/invyone-start-docker-all.sh chmod +x scripts/start/invyone-start-docker-all.command ``` Windows 에서 작성된 파일을 git 으로 받은 경우 executable bit 가 빠질 수 있습니다. 리포에 박아두려면: ```bash git update-index --chmod=+x scripts/start/invyone-start-docker-all.sh git update-index --chmod=+x scripts/start/invyone-start-docker-all.command ``` ## 관련 명령 (참고용) | 용도 | 명령 | |---|---| | 로그 실시간 | `docker compose -f docker/dev/docker-compose.invyone.yml logs -f` | | 재시작 (볼륨 유지) | `docker compose -f docker/dev/docker-compose.invyone.yml restart` | | 컨테이너 내리기 | `docker compose -f docker/dev/docker-compose.invyone.yml down` | | 상태 확인 | `docker ps` | ## 트러블슈팅 ### `docker daemon 이 실행 중이지 않습니다` Docker Desktop 실행 후 재시도. ### 포트 충돌 (9772 / 8083) 같은 머신에서 다른 프로젝트가 해당 포트를 점유했는지 확인 (`docker ps` · 태스크 매니저 · `lsof -i :9772`). 필요하면 `docker-compose.invyone.yml` 의 호스트 포트 매핑을 바꿔서 회피. ### 테넌트 서브도메인 접속 시 META DB 로 떨어지는 경우 현재 백엔드 `SubdomainResolverFilter` 와 프론트 `subdomain.ts` / `client.ts` 는 **`*.invyone.com` 만** 서브도메인으로 인식합니다. dev 환경에서 `*.localhost` 를 허용하는 패치는 별도 작업으로 예정 (`TENANT_ALLOWED_SUFFIXES` / `NEXT_PUBLIC_TENANT_HOST_SUFFIXES` 환경변수 기반). ### 프론트 `routes-manifest.json` ENOENT `frontend/next.config.mjs` 의 `output: "standalone"` + `experimental.webpackMemoryOptimizations: true` 가 dev 모드에서 청크/매니페스트를 깨는 이슈. 이미 `isDev` 분기로 수정됨 (2026-04-07). 재발 시 해당 설정이 prod build 전용인지 확인. ## 전제 조건 - Docker Desktop (Windows/Mac) 또는 docker-ce + docker-compose-plugin (Linux) - 프로젝트 루트에 `docker/dev/docker-compose.invyone.yml` 존재 - 본인 로컬 머신에 `.env` 등 필요 설정이 이미 놓여있어야 함 (syncthing 환경이면 자동 동기화)