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

367
Vistas
¿Cómo montar el volumen de la ventana acoplable con el contenedor acoplable jenkins?

Tengo jenkins ejecutándose dentro del contenedor y el código fuente del proyecto en github.

Necesito ejecutar el proyecto en un contenedor en el mismo host que jenkins, pero no como docker-in-docker, quiero ejecutarlos como contenedores hermanos.

Mi tubería se ve así:

  1. saca la fuente de github
  2. construir la imagen del proyecto
  3. ejecutar el contenedor del proyecto

Lo que hago ahora es usar el socket docker del host del contenedor jenkins:

 /var/run/docker.sock:/var/run/docker.sock

Tengo un problema cuando el contenedor jenkins monta el volumen con el código fuente de /var/jenkins_home/workspace/BRANCH_NAME al contenedor del proyecto:

 volumes: - ./servers/identity/app:/srv/app

obtengo la carpeta vacía "/srv/app" en el contenedor del proyecto

Mi mejor suposición es que docker intenta montarlo desde el host y no desde el contenedor jenkins.

Entonces, la pregunta es: ¿cómo puedo configurar explícitamente el contenedor desde el cual monto el volumen?

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

0

Tuve el mismo problema al usar el contenedor acoplable de Jenkins para ejecutar otro contenedor.

Senario 1: contenedor en ejecución dentro del contenedor docker de Jenkins

Esta no es una forma recomendada, las explicaciones van aquí. Si aún necesita usar este enfoque, entonces este problema no es un problema.

Senario 2: ejecución del cliente docker dentro del contenedor Jenkins

Supongamos que necesitamos ejecutar otro contenedor ( ContenedorA ) dentro del contenedor de la ventana acoplable de Jenkins, el complemento de canalización de la ventana acoplable utilizará --volumes-from para montar el volumen del contenedor de Jenkins en el ContenedorA .

Si intenta usar --volume o -v para asignar un directorio específico en el contenedor de Jenkins a ContainerA , obtendrá un comportamiento inesperado.

Esto se debe a que --volumes o -v intentarían mapear directorios en host a ContainerA , en lugar de mapear desde directorios dentro del contenedor Jenkins . Si los directorios no se encuentran en el host , obtendrá un directorio vacío dentro de ContainerA .

En resumen, no podemos asignar un directorio específico del contenedor A al contenedor B, solo podemos montar los volúmenes completos del contenedor A al contenedor B, y no se admite el alias de volumen .

Solución

  1. Si su Jenkins se ejecuta con volumen de host, puede asignar los directorios de host al contenedor de destino.
  2. De lo contrario, puede acceder a los archivos dentro del contenedor recién creado con la misma ubicación que el contenedor de Jenkins .
over 4 years ago · Santiago Trujillo Denunciar

0

probar:

 docker run -d --volumes-from <ContainerID> <YourImage>

donde el ID del contenedor es el ID del contenedor del que desea obtener los datos de mont.

También puede crear volumen, por:

 docker volume create <volname>

y asignarlo a ambos contenedores

 volumes: - <volname>:/srv/app
over 4 years ago · Santiago Trujillo Denunciar

0

Compartir el calcetín entre Host y Jenkins fue mi problema porque "/var/jenkins_home" es probablemente un volumen para el contenedor de Jenkins.

Mi solución fue instalar docker dentro de un contenedor systemd sin compartir el calcetín.

 docker run -d --name jenkins \ --restart=unless-stopped \ --privileged \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v jenkins-vol:/var/lib/jenkins \ --tmpfs /run \ --tmpfs /run/lock \ ubuntu:16.04 /sbin/init

Luego instale Jenkins, Docker y Docker Compose en él.

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