Oxcart Descargar
Menú

Dev Containers y Testcontainers en Mac

Mantén un entorno de proyecto coherente y pruebas de integración rápidas. Oxcart ejecuta Dev Containers y Testcontainers en tu Mac con chip de Apple mediante las herramientas Docker que ya usas. Registró 2.5 ms por creación mediante la API y 77 ms para eliminar 20 contenedores, los mejores resultados de los tres entornos que probamos, así que los entornos de prueba desechables requieren menos espera.

Actualizado

Por qué importa el motor para las pruebas

Una batería de Testcontainers inicia un Postgres, Kafka o Redis real para una clase de prueba y lo descarta después. Un Dev Container recompila y reinicia toda la cadena de herramientas de un proyecto. En ambos casos, el tiempo se va en llamadas del ciclo de vida de contenedores: crear, iniciar, detener y eliminar, una y otra vez. Esas llamadas son donde Oxcart resulta más rápido.

Llamadas del ciclo de vida de contenedores que realiza una batería de pruebas, medidas en Oxcart
OperaciónOxcart 0.1.2Frente al siguiente más rápido
Crear mediante API (sin CLI)2.5 ms7×
Iniciar mediante API18.5 ms2,1×
Detener mediante API4.0 ms21×
Crear e iniciar 20 contenedores0.69 s2,5×
Detener y eliminar 20 contenedores77 ms8,9×
docker run --rm … true42 ms3,4×

Oxcart 0.1.2 medido el 2026-10-10 con su cliente docker 29.9 incluido; los otros entornos se midieron antes ese mismo día en el mismo Mac y con el mismo sistema de medición, con docker 29.4. Apple M5 Max, 8 CPU y 12 GiB cada uno, un entorno a la vez, medianas de cinco muestras. Tabla completa: comparativas.

Conectar Dev Containers y Testcontainers a Oxcart

  1. Instala y abre Oxcart. La configuración crea un contexto Docker llamado oxcart. Solo lo convierte en el actual cuando no se usa ningún otro, así que compruébalo con docker context show.
  2. Dirige el comando docker a Oxcart. Ejecuta docker context use oxcart o activa Use Oxcart for the docker command en Settings › Command line tools. Desactivarlo restaura el contexto que tenías antes.
  3. Proporciona el socket a los frameworks de pruebas. Para herramientas que leen DOCKER_HOST en lugar de contextos Docker, expórtalo desde el contexto: export DOCKER_HOST=$(docker context inspect oxcart --format '{{.Endpoints.docker.Host}}').
  4. Ejecuta tus pruebas. Ejecuta tu batería de pruebas como siempre. Testcontainers crea, inicia y elimina sus contenedores mediante la API Docker Engine.
  5. Abre el Dev Container. Abre el proyecto en su Dev Container o ejecuta devcontainer up --workspace-folder . con la CLI de Dev Containers.

Testcontainers

Las bibliotecas Testcontainers (Java, Go, Node, Python, .NET y las demás) se comunican directamente con la API Docker Engine, sin pasar por la CLI docker. Oxcart negocia la versión 1.54 de la API y acepta de 1.40 a 1.54, así que las versiones actuales de Testcontainers se conectan sin ajustes especiales en cuanto encuentran el socket.

Encontrar el socket

Testcontainers consulta primero DOCKER_HOST. El socket de Oxcart está en su carpeta privada de estado, con modo 0600, y su ruta se almacena en el contexto Docker oxcart. Expórtalo una vez por shell o establécelo en la configuración de pruebas de tu IDE:

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

Contenedores auxiliares y el socket dentro de contenedores

Testcontainers inicia un pequeño contenedor auxiliar que limpia después de ejecuciones de pruebas que han fallado, y algunas configuraciones ejecutan las pruebas dentro de un contenedor. Ambos montan el socket Docker. En Oxcart, -v /var/run/docker.sock:/var/run/docker.sock proporciona a un contenedor la misma API Docker desde el entorno Linux, para que los contenedores auxiliares, docker-outside-of-docker, Portainer y Traefik funcionen como esperan. Si una herramienta intenta montar dentro de un contenedor la ruta DOCKER_HOST del lado del Mac, el ajuste estándar TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE de Testcontainers le indica que monte /var/run/docker.sock.

Imágenes compiladas desde un Dockerfile

Testcontainers puede compilar una imagen desde un Dockerfile en tu prueba (ImageFromDockerfile y sus equivalentes). Esto usa el endpoint de compilación de la API Engine, que Oxcart ejecuta sobre BuildKit, con contextos tar (sin comprimir y gzip), argumentos de compilación, labels y varias etiquetas.

Dev Containers

Un Dev Container describe la cadena de herramientas de un proyecto como un contenedor, y las herramientas Dev Containers (la extensión de VS Code, la CLI devcontainer y los editores que la usan) lo compilan y ejecutan mediante la CLI docker. Con oxcart como contexto actual, quien lo hace es Oxcart.

Abre tu proyecto con su cadena de herramientas y servicios de apoyo juntos. La CLI de Dev Containers inicia el espacio de trabajo junto a servicios como Postgres y Redis; tu usuario node sin privilegios de root puede editar el espacio de trabajo, y el script posterior a la creación prepara las dependencias del proyecto. Tus compañeros obtienen el mismo entorno con la misma configuración.

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

Consejos para Dev Containers en equipos con chip de Apple

  • Arquitectura: la mayoría de las imágenes base de Dev Containers publica arm64. Si una imagen solo está disponible para amd64, Oxcart la ejecuta mediante Rosetta; consulta Docker Compose en equipos con chip de Apple.
  • Dependencias en volúmenes: coloca node_modules, las cachés de paquetes y los datos de bases de datos en volúmenes con nombre, y conserva el código fuente en el espacio de trabajo montado mediante bind mount.
  • Monitorización de archivos: los cambios hechos en el Mac no generan eventos inotify dentro de los contenedores, así que un monitor que se ejecute en el contenedor debe usar consultas periódicas.
  • Agentes de programación: un agente dentro de un Dev Container mantiene su shell en el contenedor del proyecto; un agente en el Mac puede inspeccionar los servicios del Dev Container mediante el servidor MCP de Oxcart (Docker para agentes de programación con IA).

El contexto Docker, sin sorpresas

Oxcart crea su contexto oxcart durante la configuración y solo lo convierte en el actual cuando no te quita nada: cuando el contexto actual es default y nada responde en su socket. En caso contrario, se mantiene tu contexto actual. En Settings › Command line tools está Use Oxcart for the docker command, que cambia a oxcart y recuerda el contexto que sustituye; desactivarlo vuelve al anterior. Oxcart nunca crea ni sustituye /var/run/docker.sock en tu Mac y su API nunca está expuesta por TCP.

Preguntas

¿Testcontainers funciona en Mac con chip de Apple y Oxcart?

Sí. Testcontainers se comunica con la API Docker Engine, que Oxcart implementa (versiones de API de 1.40 a 1.54), incluido el endpoint de compilación que Testcontainers usa para imágenes creadas desde un Dockerfile. Los contenedores también pueden montar el socket Docker en /var/run/docker.sock, como esperan los contenedores auxiliares de Testcontainers.

¿Cómo establezco DOCKER_HOST para Testcontainers?

Lee su valor en el contexto Docker oxcart: docker context inspect oxcart --format '{{.Endpoints.docker.Host}}' imprime una ruta unix://. Expórtala como DOCKER_HOST en tu shell o en la configuración de ejecución de pruebas de tu IDE.

¿Por qué son más rápidas mis pruebas de integración con Oxcart?

Las baterías de pruebas pasan gran parte del tiempo creando, iniciando, deteniendo y eliminando contenedores. En el mismo Mac, Oxcart registró 2.5 ms por creación mediante API, 18.5 ms por arranque mediante API, 4.0 ms por parada mediante API y 77 ms para detener y eliminar 20 contenedores: los mejores resultados de los tres entornos que probamos en cada operación.

¿VS Code Dev Containers funciona con Oxcart?

La CLI de Dev Containers 0.89.0 compiló e inició una configuración real de varios servicios en Oxcart, con Postgres y Redis saludables y un espacio de trabajo en el que el usuario del contenedor podía escribir. Las herramientas Dev Containers controlan la CLI docker, así que dirígela a Oxcart con el contexto oxcart.

¿docker-outside-of-docker funciona en un Dev Container?

Sí. Monta /var/run/docker.sock dentro del contenedor y su CLI docker se comunicará con el mismo motor. Los endpoints privados de Oxcart rechazan el acceso desde ese socket, así que un contenedor puede administrar contenedores, pero no acceder a los componentes internos de Oxcart.

¿Oxcart sustituirá /var/run/docker.sock en mi Mac?

No. Oxcart nunca crea ni sustituye /var/run/docker.sock en el Mac. Los clientes acceden mediante el contexto Docker oxcart o la ruta del socket que indica ese contexto.

Fuentes y método

  • Compatibilidad: integraciones verificadas de Oxcart (compilación mediante la API Engine usada por docker-py y Testcontainers, CLI de Dev Containers 0.89.0 y socket Docker dentro de contenedores) y rango de versiones de la API.
  • Selección del contexto Docker y configuración de línea de comandos: Oxcart tal como se distribuye.
  • Cifras de velocidad: Oxcart 0.1.2, 2026-10-10, Apple M5 Max, 8 CPU y 12 GiB; los otros entornos se midieron antes ese mismo día en el mismo Mac, con el mismo sistema de medición y el cliente docker 29.4.

Prueba Oxcart con tus propios proyectos

Gratis durante 60 días. Después, $20 por persona y por versión principal, sin suscripción.

Apple silicon · macOS 26 o posterior

Sigue leyendo

Notas de la versión

Oxcart 0.1.4

Última versión

Licencias y mejoras.

  • Activación de licencias mediante un enlace seguro enviado por correo electrónico.
  • Gestión de licencias y Mac desde Settings.
  • Verificación de licencias sin conexión.
  • Mejoras de rendimiento, ajustes de la interfaz y correcciones de errores.

Requiere macOS 26.0 o posterior

Oxcart 0.1.3

Recuperación de memoria en reposo.

  • Recupera memoria de la VM cuando no hay contenedores en ejecución.
  • Conserva los contenedores, las imágenes, los volúmenes y las redes.

Requiere macOS 26.0 o posterior

Oxcart 0.1.2

Integración de herramientas de línea de comandos.

  • Alterna entre las herramientas Docker incluidas con Oxcart y una instalación existente.
  • Ajustes de la interfaz.

Requiere macOS 26.0 o posterior

Oxcart 0.1.1

Herramientas Docker incluidas y controles para agentes.

  • Docker CLI 29.9, Compose 5.6 y Buildx 0.38 incluidos.
  • Integración con contextos de Docker y credenciales seguras en el Llavero.
  • Conexiones de agentes MCP con permisos y bloqueo por agente.

Requiere macOS 26.0 o posterior

Oxcart 0.1.0

Contenedores compatibles con Docker para Apple silicon.

  • Compatibilidad con Docker CLI, Compose y Buildx.
  • Configuración sin conexión con los componentes de ejecución incluidos.
  • Puertos organizados por proyecto y rama de Git.
  • Integración MCP con acceso de solo lectura de forma predeterminada.
  • Actualizaciones automáticas verificadas.

Requiere macOS 26.0 o posterior