Oxcart 다운로드
메뉴

Mac에서 Dev Containers 및 Testcontainers 사용

프로젝트 환경을 일관되게 유지하고 통합 테스트를 빠르게 실행하세요. Oxcart는 이미 사용하는 Docker 도구를 통해 Apple Silicon Mac에서 Dev Containers와 Testcontainers를 실행합니다. API 생성당 2.5 ms, 컨테이너 20개 정리에 77 ms를 기록해 테스트한 세 런타임 중 가장 빨랐습니다. 일회용 테스트 환경에서 기다리는 시간이 줄어듭니다.

업데이트

테스트에서 엔진이 중요한 이유

Testcontainers 테스트 스위트는 테스트 클래스용으로 실제 Postgres, Kafka 또는 Redis를 시작하고 종료 후 폐기합니다. Dev Container는 프로젝트 전체 도구 체인을 다시 빌드하고 시작합니다. 둘 다 생성, 시작, 중지, 삭제라는 컨테이너 수명 주기 호출을 반복하는 데 시간을 씁니다. 이런 호출에서 Oxcart가 가장 빠릅니다.

테스트 스위트의 컨테이너 수명 주기 호출을 Oxcart에서 측정
작업Oxcart 0.1.2두 번째로 빠른 도구 대비
API로 생성(CLI 제외)2.5 ms7×
API로 시작18.5 ms2.1×
API로 중지4.0 ms21×
컨테이너 20개 생성 및 시작0.69 s2.5×
컨테이너 20개 중지 및 삭제77 ms8.9×
docker run --rm … true42 ms3.4×

Oxcart 0.1.2는 2026-10-10에 기본 제공 docker 29.9 클라이언트로 측정했습니다. 다른 런타임은 같은 날 앞서 동일한 Mac과 테스트 하네스에서 docker 29.4로 측정했습니다. Apple M5 Max에서 각각 CPU 8개와 12 GiB로 설정하고 한 번에 한 런타임씩 실행했으며 5회 표본의 중앙값입니다. 전체 표: 비교 페이지.

Dev Containers와 Testcontainers를 Oxcart에 연결

  1. Oxcart를 설치하고 여세요. 설정 과정에서 oxcart라는 Docker 컨텍스트를 만듭니다. 다른 컨텍스트가 사용 중이 아닐 때만 이를 현재 컨텍스트로 설정하므로 docker context show로 확인하세요.
  2. docker 명령의 연결 대상을 Oxcart로 지정하세요. docker context use oxcart를 실행하거나 Settings › Command line tools에서 Use Oxcart for the docker command를 켜세요. 끄면 이전 컨텍스트가 복원됩니다.
  3. 테스트 프레임워크에 소켓을 제공하세요. Docker 컨텍스트 대신 DOCKER_HOST를 읽는 도구에는 컨텍스트에서 값을 내보내세요: export DOCKER_HOST=$(docker context inspect oxcart --format '{{.Endpoints.docker.Host}}').
  4. 테스트를 실행하세요. 평소처럼 테스트 스위트를 실행합니다. Testcontainers는 Docker Engine API를 통해 컨테이너를 생성, 시작, 삭제합니다.
  5. Dev Container를 여세요. 프로젝트를 Dev Container에서 열거나 Dev Containers CLI로 devcontainer up --workspace-folder .를 실행하세요.

Testcontainers

Testcontainers 라이브러리(Java, Go, Node, Python, .NET 등)는 docker CLI를 거치지 않고 Docker Engine API와 직접 통신합니다. Oxcart는 API 버전 1.54를 협상하며 1.40~1.54를 허용하므로, 현재 Testcontainers 릴리스는 소켓을 찾기만 하면 특별한 설정 없이 연결됩니다.

소켓 찾기

Testcontainers는 먼저 DOCKER_HOST를 확인합니다. Oxcart 소켓은 비공개 상태 폴더에 0600 권한으로 있으며, 경로는 oxcart Docker 컨텍스트에 저장됩니다. 셸마다 한 번 내보내거나 IDE의 테스트 구성에서 설정하세요.

export DOCKER_HOST=$(docker context inspect oxcart --format '{{.Endpoints.docker.Host}}')
./gradlew test        # or: mvn verify, go test ./..., pytest, npm test

도우미 컨테이너와 컨테이너 내부 소켓

Testcontainers는 테스트 실행이 충돌한 뒤 정리하는 작은 도우미 컨테이너를 시작하며, 일부 구성에서는 테스트를 컨테이너 안에서 실행합니다. 둘 다 Docker 소켓을 마운트합니다. Oxcart에서 -v /var/run/docker.sock:/var/run/docker.sock은 Linux 쪽 내부에서 컨테이너에 동일한 Docker API를 제공하므로 도우미 컨테이너, docker-outside-of-docker, Portainer, Traefik이 예상대로 작동합니다. 도구가 Mac 쪽 DOCKER_HOST 경로를 컨테이너에 마운트하려 한다면, Testcontainers의 표준 TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE 설정으로 /var/run/docker.sock을 마운트하도록 지정하세요.

Dockerfile로 빌드하는 이미지

Testcontainers는 테스트의 Dockerfile로 이미지를 빌드할 수 있습니다(ImageFromDockerfile 및 이에 해당하는 기능). Engine API의 빌드 엔드포인트를 사용하며, Oxcart는 이를 BuildKit에서 실행합니다. tar 컨텍스트(일반 및 gzip), 빌드 인수, 레이블, 여러 태그를 지원합니다.

Dev Containers

Dev Container는 프로젝트의 도구 체인을 컨테이너로 정의합니다. Dev Containers 도구(VS Code 확장, devcontainer CLI, 이를 사용하는 편집기)는 docker CLI로 빌드하고 실행합니다. 현재 컨텍스트가 oxcart라면 Oxcart를 사용합니다.

도구 체인과 지원 서비스를 함께 갖춘 상태로 프로젝트를 여세요. Dev Containers CLI는 Postgres, Redis 같은 서비스와 함께 작업 공간을 시작합니다. root가 아닌 node 사용자가 작업 공간을 편집할 수 있고, 프로젝트의 생성 후 스크립트가 종속성을 준비합니다. 팀원은 같은 구성으로 같은 환경을 사용할 수 있습니다.

npm install -g @devcontainers/cli
devcontainer up --workspace-folder .
devcontainer exec --workspace-folder . bash

Apple Silicon에서 Dev Containers를 사용하는 팁

  • 아키텍처: 대부분의 Dev Container 기본 이미지는 arm64를 제공합니다. amd64 전용 이미지는 Oxcart가 Rosetta로 실행합니다. Apple Silicon에서 Docker Compose 사용을 확인하세요.
  • 종속성은 볼륨에: node_modules, 패키지 캐시, 데이터베이스 데이터는 명명된 볼륨에 두고 소스는 바인드 마운트된 작업 공간에 유지하세요.
  • 파일 감시: Mac에서 수정해도 컨테이너 안에서 inotify 이벤트가 발생하지 않으므로 컨테이너에서 실행되는 감시기는 폴링을 사용해야 합니다.
  • 코딩 에이전트: Dev Container 안에서 실행되는 에이전트의 셸은 프로젝트 컨테이너 안에 유지됩니다. Mac에서 실행되는 에이전트는 Oxcart의 MCP 서버를 통해 Dev Container의 서비스를 살펴볼 수 있습니다(AI 코딩 에이전트용 Docker).

예상대로 유지되는 Docker 컨텍스트

Oxcart는 설정 시 oxcart 컨텍스트를 만들고 기존 사용에 영향을 주지 않을 때만 현재 컨텍스트로 설정합니다. 즉 현재 컨텍스트가 default이고 해당 소켓에서 응답하는 대상이 없을 때입니다. 그 외에는 현재 컨텍스트를 유지합니다. Settings › Command line tools의 Use Oxcart for the docker command를 켜면 oxcart로 전환하고 이전 컨텍스트를 기억하며, 끄면 되돌립니다. Oxcart는 Mac의 /var/run/docker.sock을 생성하거나 교체하지 않으며 API를 TCP로 제공하지 않습니다.

자주 묻는 질문

Apple Silicon Mac의 Oxcart에서 Testcontainers가 작동하나요?

네. Testcontainers는 Oxcart가 구현하는 Docker Engine API(버전 1.40~1.54)와 통신합니다. Dockerfile로 이미지를 만들 때 사용하는 빌드 엔드포인트도 포함됩니다. 컨테이너는 Testcontainers 도우미 컨테이너가 기대하는 /var/run/docker.sock에 Docker 소켓을 마운트할 수도 있습니다.

Testcontainers용 DOCKER_HOST는 어떻게 설정하나요?

oxcart Docker 컨텍스트에서 읽으세요. docker context inspect oxcart --format '{{.Endpoints.docker.Host}}'를 실행하면 unix:// 경로가 출력됩니다. 셸이나 IDE의 테스트 실행 구성에서 이를 DOCKER_HOST로 내보내세요.

Oxcart에서 통합 테스트가 더 빠른 이유는 무엇인가요?

테스트 스위트는 컨테이너 생성, 시작, 중지, 삭제에 많은 시간을 씁니다. 같은 Mac에서 Oxcart는 API 생성당 2.5 ms, API 시작당 18.5 ms, API 중지당 4.0 ms, 컨테이너 20개 중지 및 삭제에 77 ms를 기록했습니다. 각 항목에서 테스트한 세 런타임 중 가장 빨랐습니다.

VS Code Dev Containers는 Oxcart에서 작동하나요?

Dev Containers CLI 0.89.0은 Oxcart에서 실제 다중 서비스 구성을 빌드하고 시작했습니다. Postgres와 Redis가 정상 상태였으며 컨테이너 사용자가 작업 공간에 쓸 수 있었습니다. Dev Containers 도구는 docker CLI를 사용하므로 oxcart 컨텍스트로 CLI의 연결 대상을 Oxcart로 지정하세요.

Dev Container에서 docker-outside-of-docker가 작동하나요?

네. /var/run/docker.sock을 컨테이너에 마운트하면 내부 docker CLI가 같은 엔진과 통신합니다. 해당 소켓을 통한 Oxcart의 비공개 엔드포인트 접근은 거부되므로, 컨테이너는 컨테이너를 관리할 수 있지만 Oxcart 자체 내부에는 접근할 수 없습니다.

Oxcart가 Mac의 /var/run/docker.sock을 교체하나요?

아니요. Oxcart는 Mac의 /var/run/docker.sock을 생성하거나 교체하지 않습니다. 클라이언트는 oxcart Docker 컨텍스트 또는 해당 컨텍스트에 지정된 소켓 경로를 통해 연결합니다.

출처와 측정 방법

  • 호환성: Oxcart에서 검증된 통합 방식(docker-py 및 Testcontainers가 사용하는 Engine API 빌드, Dev Containers CLI 0.89.0, 컨테이너 내부 Docker 소켓)과 API 버전 범위.
  • Docker 컨텍스트 선택 및 명령줄 설정: 배포된 Oxcart 기준.
  • 속도 수치: Oxcart 0.1.2, 2026-10-10, Apple M5 Max, CPU 8개 및 12 GiB. 다른 런타임은 같은 날 앞서 동일한 Mac과 테스트 하네스에서 docker 29.4 클라이언트로 측정했습니다.

직접 진행하는 프로젝트에서 Oxcart를 사용해 보세요

60일 무료 체험. 이후 사용자당, 메이저 버전당 $20이며 구독료는 없습니다.

Apple silicon · macOS 26 이상

다음 글

릴리스 노트

Oxcart 0.1.4

최신 릴리스

라이선스 기능 및 개선 사항.

  • 안전한 이메일 링크를 통한 라이선스 활성화.
  • Settings에서 라이선스와 Mac 관리.
  • 오프라인 라이선스 검증.
  • 성능 및 UI 개선, 버그 수정.

macOS 26.0 이상 필요

Oxcart 0.1.3

유휴 상태에서 메모리 회수.

  • 실행 중인 컨테이너가 없을 때 VM 메모리 회수.
  • 컨테이너, 이미지, 볼륨, 네트워크 유지.

macOS 26.0 이상 필요

Oxcart 0.1.2

명령줄 도구 통합.

  • Oxcart에 포함된 Docker 도구와 기존에 설치된 Docker 도구 간 전환.
  • UI 개선.

macOS 26.0 이상 필요

Oxcart 0.1.1

Docker 도구 포함 및 에이전트 제어.

  • Docker CLI 29.9, Compose 5.6, Buildx 0.38 포함.
  • Docker 컨텍스트 통합 및 키체인을 통한 안전한 자격 증명 보관.
  • MCP 에이전트 연결 및 에이전트별 권한 설정과 차단.

macOS 26.0 이상 필요

Oxcart 0.1.0

Apple Silicon용 Docker 호환 컨테이너.

  • Docker CLI, Compose, Buildx 호환.
  • 런타임 구성 요소를 포함한 오프라인 설정.
  • 프로젝트와 Git 브랜치별 포트 정리.
  • 기본적으로 읽기 전용 접근을 제공하는 MCP 통합.
  • 검증을 거치는 자동 업데이트.

macOS 26.0 이상 필요