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

@ -18,7 +18,7 @@ set -uo pipefail # -e 미사용: 'test && action' 관용구가 값 없을 때
REPO="${YAKCLOUD_STARTER_REPO:-https://gitea.yakenator.io/yakenator/yakcloud-starter}"
BRANCH="${YAKCLOUD_STARTER_BRANCH:-main}"
VERSION="0.6.0"
VERSION="0.7.0"
CONFIG_DIR="${YAKCLOUD_CONFIG_DIR:-$HOME/.config/yakcloud}"
CONFIG_FILE="$CONFIG_DIR/config"
@ -39,6 +39,12 @@ ctl() {
python3 scripts/yakcloud_ctl.py "$@"
}
dev() {
[ -f scripts/yakcloud_dev.py ] || die "프로젝트 폴더가 아닙니다 — 'yakcloud project init' 로 초기화하세요."
ensure_pyyaml
python3 scripts/yakcloud_dev.py "$@"
}
# ── 자격 저장 ── 비밀(배포토큰·Gitea토큰)=OS 키체인(암호화), 그 외(URL·사용자)=config 파일(600) ──
_KC="none"
if command -v security >/dev/null 2>&1; then _KC="macos"
@ -320,6 +326,7 @@ cmd_project_update() {
mkdir -p scripts .gitea/workflows .claude/skills
cp "$tmp/s/scripts/yakcloud_deploy.py" scripts/ 2>/dev/null || true
cp "$tmp/s/scripts/yakcloud_ctl.py" scripts/ 2>/dev/null || true
cp "$tmp/s/scripts/yakcloud_dev.py" scripts/ 2>/dev/null || true
cp "$tmp/s/.gitea/workflows/deploy.yml" .gitea/workflows/ 2>/dev/null || true
cp "$tmp/s/DATA-SOURCES.md" DATA-SOURCES.md 2>/dev/null || true
rm -rf .claude/skills/yakcloud-deploy
@ -351,6 +358,10 @@ yakcloud $VERSION — YakCloud 프로젝트 CLI
datasource ls 클러스터에서 이용 가능한 소스 목록(이름·타입·내부/외부·상태)
source add <name> <type> [plan] | source rm <name>
bind <wl> <source> <alias> | unbind <wl> <alias>
── 로컬 개발(docker 데이터소스 + prod 동일 env) ──
dev up [source…] requires[] 를 로컬 docker 로 기동 + .env.dev 생성
dev run -- <명령> up 보장 후 .env.dev 로 앱 실행(배포와 동일 <ALIAS>_* 주입)
dev down [--volumes] | status | logs [src] | env | reset [src] | doctor
env: YAKCLOUD_URL, YAKCLOUD_TOKEN(배포토큰 yakd_…), (선택) YAKCLOUD_CLUSTER
EOF
}
@ -371,6 +382,7 @@ case "${1:-help}" in
login) cmd_login ;;
config) cmd_config ;;
logout) cmd_logout ;;
dev) shift; dev "$@" ;;
datasource|ds) shift; ctl source "$@" ;;
domain|scale|set|env|source|bind|unbind) ctl "$@" ;;
upgrade|self-update) cmd_upgrade ;;