생성
호스트에서 만들기
wp rudel create --name=alpha --theme=twentytwentyfour
Rudel은 이름에 16진수 문자 4개를 더해 ID를 생성하고(예: alpha-3be7), 호스트의 WordPress 테이블을 생성된 테이블 접두사로 복제하며, 선택한 테마를 샌드박스 디렉터리에 복사하고, 호스트 WordPress 데이터베이스에 샌드박스 레코드를 기록합니다. 샌드박스의 siteurl와 home는 호스트 URL을 유지합니다.
--theme을 생략하면 Rudel은 호스트 사이트의 활성 테마를 사용합니다. 해당 테마가 호스트에 설치되어 있어야 합니다. 자식 테마를 선택하면 부모 테마도 함께 가져옵니다.
호스트 테이블 접두사가 붙은 모든 테이블을 복사합니다. 여기에는 users와 usermeta이 포함되지만 Rudel 자체 테이블은 제외됩니다. 현재 릴리스에서는 이미 존재하는 샌드박스의 테이블도 포함되므로, 새 샌드박스는 만들 때마다 더 커집니다. 문제 #3을 참조하세요.
다른 샌드박스에서 만들기
wp rudel create --name=feature-b --clone-from=alpha-3be7
새 샌드박스에는 원본 샌드박스의 접두사가 붙은 모든 테이블(원본의 스냅샷 테이블 포함)과 테마가 복사됩니다. 스냅샷 디렉터리는 복사되지 않으므로 해당 테이블은 새 샌드박스에서 사용되지 않습니다(문제 #12). 원본 테마 디렉터리가 Git 저장소이면 Rudel은 단순히 복사하는 대신 브랜치 rudel/{new-id}에 연결된 워크트리를 만듭니다. 새 레코드에는 원본 ID가 기록됩니다.
수명 주기 메타데이터
샌드박스에는 정리와 소유권을 위한 메타데이터를 지정할 수 있습니다:
wp rudel create \
--name=feature-a \
--owner=dennis \
--labels=agent,qa \
--purpose="Test checkout changes" \
--ttl-days=7
자동 정리에서 샌드박스를 제거하지 않도록 하려면 --protected을 사용하세요. 정책을 참조하세요.
제한
max_sandboxes 또는 max_disk_mb 설정값에 도달하면 생성이 실패합니다. 두 설정의 기본값은 0이며, 이는 제한이 없음을 의미합니다. 구성을 참조하세요.
Git 체크아웃
wp rudel create --name=feature-a --git=https://example.test/my-theme.git
Rudel은 샌드박스를 만들고, 샌드박스 디렉터리 안의 themes/my-theme에 원격 저장소를 복제한 다음 체크아웃을 브랜치 rudel/{id}로 전환합니다. 대신 --type=plugin을 추가하면 plugins/my-theme에 복제합니다. 복제에 실패해도 샌드박스는 그대로 남고 경고가 출력됩니다. 해당 체크아웃에서 샌드박스가 제공하는 항목은 Git을 참조하세요.
디렉터리 구조
wp-content/rudel-environments/{id}/
themes/ copied theme, plus any Git checkout
snapshots/ snapshot metadata and theme copies
logs/ metadata/ tmp/
wp-cli.yml
debug.log when debug logging is active