sbx env

sbx env

sbx env은 sbxenv.yaml 파일에서 선언적으로 샌드박스를 관리하는 명령 그룹이에요. 환경 파일 하나로 샌드박스를 만들고, 실행하고, 제거할 수 있어요.

출처: 문서

본문

실험적 — 이 명령은 실험적이에요. 기능이나 설계가 릴리스 사이에 예고 없이 바뀌거나 완전히 제거될 수 있어요.

sbx env는 sbxenv.yaml 파일에 선언된 샌드박스 환경을 관리해요.

이 파일은 에이전트, 선택적 mixin kit, 워크스페이스 마운트, 환경 변수, 프로비저닝할 시크릿, 서비스별 자격 증명 바인딩을 기술해요. 시크릿은 환경의 샌드박스 범위에 프로비저닝되므로 sbx env rm이 만든 모든 것을 제거할 수 있어요.

commandref가 있는 시크릿은 snapshot: true를 설정해 호스트에서 승인 후 해석해 리터럴로 저장할 수 있어요. 로컬과 --cloud 모두에서 동작해요.

args: 블록에서 파일이 자체 입력을 선언할 수 있어요. 값이 나타날 수 있는 곳 어디나 ${{ env.args.NAME }}으로 참조하고 --env-arg NAME=VALUE로 제공해요.

kits: 항목은 bare 참조이거나 kit가 선언한 인자를 담은 매핑이에요. --kit-arg가 호출별로 재정의해요.

workspace:는 샌드박스에 읽기/쓰기로 마운트할 디렉터리를 지정해요. 상대 경로는 파일이 선언된 디렉터리를 기준으로 해석돼요. ${{ env.projectDir }}은 프로젝트 디렉터리를, ${{ env.fileDir }}은 선언 파일 자신을 가리켜요.

lifecycle: 블록은 샌드박스 수명 주기에 맞춰 호스트에서 실행할 명령을 선언해요. initialize, postCreate, preRemove 등의 훅이 있고 workdir:timeout:으로 제어할 수 있어요. 호스트 명령을 선언한 환경은 매 호출마다 승인을 요청해요. --skip-host-commands로 실행하지 않을 수 있어요.

환경이 설정하는 모든 것은 플랜(plan)으로 표시되고 실행 전에 승인돼요.

sbx env COMMAND

--cloud와 함께 쓰면 같은 파일로 클라우드 샌드박스를 만들고, 실행하고, 제거하고, 플랜을 볼 수 있어요.

지원하는 하위 명령은 다음과 같아요.

명령 설명
sbx env create 실험적 — sbxenv.yaml에서 샌드박스 환경을 만들어요.
sbx env exec 실험적 — 샌드박스 환경 안에서 명령을 실행해요.
sbx env plan 실험적 — 환경이 샌드박스 밖에서 무엇을 바꿀지 보여줘요.
sbx env rm 실험적 — 샌드박스 환경과 그 범위 리소스를 제거해요.
sbx env run 실험적 — 필요하면 샌드박스 환경을 만들고 연결해요.

더 알아보기