cli v0.7.0: 'yakcloud dev' — 로컬 docker 데이터소스 + 프로덕션 _bind_env_for 바이트 동일 <ALIAS>_* env(.env.dev). up/run/down/status/logs/env/reset/doctor; 결정적 자격 파생; 9종 패리티+6종 docker E2E 검증. .gitignore 에 dev 산출물

This commit is contained in:
2026-08-27 19:27:09 +09:00
parent 31cf7fbb49
commit a82de865f7
6 changed files with 830 additions and 2 deletions

View File

@ -19,9 +19,11 @@ allowed-tools: Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion
- **`project init [name]`** → §2 스캐폴딩(마법사 대체).
- **`login`** → 비밀 입력이라 여기서 실행하지 말고, 터미널에서 `yakcloud login` 하라고 한 줄 안내.
(사용자가 값을 직접 주면 `YAKCLOUD_URL=… YAKCLOUD_TOKEN=… GITEA_USER=… GITEA_TOKEN=… yakcloud config` 로 저장하되 **값은 화면에 출력 금지**.)
- **`dev …`**(`dev up|run|down|status|logs|env|reset|doctor`) → 로컬 docker 데이터소스 + `.env.dev`.
`docker` 데몬이 떠 있어야 함(없으면 `yakcloud dev doctor` 로 진단). `dev run -- <명령>` 은 앱을 배포와 동일한 `<ALIAS>_*` 로 실행.
- **그 외 전부**(`project deploy|info|check|update`, `datasource ls`, `domain`, `scale`, `set`, `env`,
`source`, `bind`, `unbind`, `config`, `upgrade`) → `yakcloud $ARGUMENTS` 를 실행하고 **출력을 그대로** 보여준 뒤,
필요할 때만 한 줄로 해석. 배포/삭제성(`deploy`·`source rm`·`unbind`·`domain`)은 실행 전 무엇을 하는지 한 줄 알리고 진행.
필요할 때만 한 줄로 해석. 배포/삭제성(`deploy`·`source rm`·`unbind`·`domain`·`dev down --volumes`)은 실행 전 무엇을 하는지 한 줄 알리고 진행.
## 2) `project init` — 마법사 대체 (핵심)
터미널 마법사는 TTY가 없으면 안 뜬다. 네가 대신한다:

View File

@ -28,6 +28,11 @@ YakCloud 콘솔 API로 **데이터소스 리컨실 + 워크로드 배포 + 바
- **"프로젝트 개괄"** → `yakcloud project info` (매니페스트 + 라이브 상태)
- 사전 점검 → `yakcloud project check` (dry-run)
**로컬 개발(docker 데이터소스 + 배포와 동일 env)**
- `yakcloud dev up``requires[]` 를 로컬 docker 로 기동 + `.env.dev`(프로덕션과 **바이트 동일**한 `<ALIAS>_*`) 생성
- `yakcloud dev run -- <명령>` — up 보장 후 `.env.dev` 주입해 앱 실행(배포된 파드와 동일 env → 무수정 이식)
- `yakcloud dev status|logs|down [--volumes]|reset|doctor` — 자격은 시드에서 결정적 파생(`.yakcloud/dev/`, gitignore)
**배포환경 설정(앱별) — 매니페스트 수정 + 배포중이면 재빌드 없이 라이브 반영**
- `yakcloud domain <fqdn> [wl]` 도메인 등록 + 워크로드 할당
- `yakcloud scale <wl> <n>` replicas