Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

715
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda