Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

706
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!