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

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

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 Report

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 Report

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 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!