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

1.1K
Vistas
Ejecute pruebas en el contenedor docker usando TestContainers y Jenkins (permiso docker.sock denegado)

En mis pruebas uso TestContainers . Quiero ejecutar pruebas en un contenedor usando Jenkins. Creé esta imagen para ejecutar pruebas con maven . archivo acoplable:

 FROM registry.company.com/maven:3-jdk-8-slim RUN apt update RUN apt install -y wget libatomic1 curl gnupg RUN wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/ndbclient_7.6.10-1debian9_amd64.deb \ && dpkg -i ndbclient_7.6.10-1debian9_amd64.deb && rm ndbclient_7.6.10-1debian9_amd64.deb RUN ln -s /usr/lib/x86_64-linux-gnu/libndbclient.so.6.1.0 /usr/lib/x86_64-linux-gnu/libndbclient.so RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - RUN apt-get -y install nodejs RUN groupadd --gid 10000 ldap && useradd -m --uid 10028 --gid 10000 jenkins RUN echo "jenkins ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers COPY settings.xml /home/jenkins/ USER jenkins

En mis pruebas utilizo el contenedor MySQL Cluster .

Para Jenkins , agrego un nodo en Jenkinsfile:

 node('Docker') { checkout scm docker.withRegistry('http://registry.company.com/v2/', 'cred_id') { docker.image('integration-tests:latest') .inside('-v $HOME/.m2:/home/jenkins/.m2:rw -u jenkins') { stage('Test') { sh 'mvn clean -s /home/jenkins/settings.xml' sh 'mvn -s /home/jenkins/settings.xml test -DargLine="-Djava.library.path=/usr/lib/x86_64-linux-gnu/"' } } } }

El problema es que Jenkins se ejecuta desde el usuario jenkins. Creé el mismo usuario con el mismo ID de usuario y ID de grupo. Pero cuando empiezo las pruebas me sale que se niega el acceso a docker.sock :

 Caused by: java.io.IOException: com.sun.jna.LastErrorException: [13] Permission denied at org.testcontainers.shaded.org.scalasbt.ipcsocket.UnixDomainSocket.<init>(UnixDomainSocket.java:62) at org.testcontainers.dockerclient.transport.okhttp.UnixSocketFactory$1.<init>(UnixSocketFactory.java:27) at org.testcontainers.dockerclient.transport.okhttp.UnixSocketFactory.createSocket(UnixSocketFactory.java:27)

Estudié esta página: https://www.testcontainers.org/supported_docker_environment/continuous_integration/dind_patterns/ pero no me ayudó. Ahí todo empieza desde el usuario root, y por supuesto no tiene problemas.

¿Cómo puedo arreglarlo?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Una solución sucia es:

 sudo chmod a+rw /var/run/docker.sock

Esto podría tener algunos riesgos de seguridad, pero estoy en mi máquina local.

over 4 years ago · Santiago Trujillo 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