Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

708
Vistas
AWS CodeBuild: ¿Cómo ejecutar pruebas que requieren iniciar Docker?

Tengo un proyecto Node.js con Testcontainers que se usan para mirar Redis y Prostgress para las pruebas.

Quiero ejecutar estas pruebas como parte de CI. Para ese propósito, uso una imagen alpina de Node.js con Docker instalado encima. Puedo ejecutar pruebas que no requieren Docker allí, pero si involucra a Docker, recibo este error de Testcontainers:

No se encontró ninguna estrategia de cliente de Docker

Esto es lo que obtengo en los registros:

 2022-05-25T13:09:11.494Z testcontainers DEBUG Found applicable Docker client strategy: UnixSocketStrategy 2022-05-25T13:09:11.531Z testcontainers DEBUG Testing Docker client strategy URI: unix:///var/run/docker.sock 2022-05-25T13:09:11.539Z testcontainers DEBUG No registry auth locator found for registry: "https://index.docker.io/v1/" 2022-05-25T13:09:11.543Z testcontainers WARN Docker daemon is not reachable: Error: connect ENOENT /var/run/docker.sock 2022-05-25T13:09:11.543Z testcontainers WARN Docker client strategy UnixSocketStrategy is not reachable 2022-05-25T13:09:11.544Z testcontainers ERROR Failed to list images: Error: No Docker client strategy found 2022-05-25T13:09:11.544Z testcontainers ERROR Failed to pull image "postgres:14.2-alpine": Error: No Docker client strategy found

Las pruebas funcionan bien cuando las inicio localmente.

No he encontrado nada en la documentación de CodeBuild que explique cómo conectarse a Docker Engine desde dentro de un contenedor de compilación. Encontré estas instrucciones en la documentación de Testcontainers, pero no entiendo cómo aplicar esto en AWS Codebuild.

P: ¿Cómo ejecutar pruebas que requieren iniciar Docker en AWS CodeBuild?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

WARN Docker daemon no es accesible: Error: conecte ENOENT /var/run/docker.sock

Entornos de CodeBuild por defecto:

  1. no tiene acceso para interactuar con el demonio Docker, dockerd
  2. no tiene el demonio Docker ejecutándose

El error insinúa esto al indicar que no puede llegar al demonio.

Para abordar lo anterior:

  1. Establezca su versión buildspec a 0.2
  2. Ejecute su compilación con el privilegedMode establecido en true para otorgar acceso al demonio
  3. Asegúrese de que el demonio se esté ejecutando

El punto clave a tener en cuenta aquí es que cuando se utilizan imágenes oficiales de Docker proporcionadas por AWS CodeBuild, el demonio de Docker se inicia automáticamente a través de dockerd-entrypoint.sh . No necesita hacer esto manualmente.

Sin embargo, cuando utilice imágenes personalizadas, debe iniciar el daemon manualmente .


Puede inicializar manualmente el demonio Docker durante la fase de instalación de su compilación agregando los siguientes comandos a su archivo buildspec.yml .

Para una imagen basada en Alpine:

 version: 0.2 phases: install: commands: - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done" ...

Para una imagen basada en Ubuntu:

 version: 0.2 phases: install: commands: - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done" ...

Ahora debería poder ejecutar contenedores Docker dentro de su compilación.

Si eso sigue sin funcionar, estará relacionado con Testcontainers.

Según los documentos que ha vinculado, asegúrese de que su docker run ... el comando que ejecuta el contenedor incluye -v $PWD:$PWD -w $PWD -v /var/run/docker.sock:/var/run/docker.sock

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda