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

353
Vistas
Jenkinsfile maven plugin dentro de un contenedor docker

Estoy usando Jenkins con un Jenkinsfile que ejecuta mis compilaciones dentro de un contenedor docker. Tengo una aplicación Java simple que me gustaría compilar e implementar en el artefacto usando el complemento Jenkins Artifactory.

Mi Jenkinsfile está debajo -

 node { def server = Artifactory.server "my-artifactory" def rtMaven = Artifactory.newMavenBuild() stage("Prepare environment"){ docker.image('driv/docker-maven-java-oracle').inside { checkout scm stage("Artifactory configuration") { rtMaven.deployer releaseRepo:'libs-release-local', snapshotRepo:'libs-snapshot-local', server: server rtMaven.resolver releaseRepo:'libs-release', snapshotRepo:'libs-snapshot', server: server } stage("Maven build") { def buildInfo = rtMaven.run pom: 'pom.xml', goals: 'clean install' } } } }

Sin embargo, cuando ejecuto compilaciones con el Jenkinsfile anterior, aparece el error:

 java.lang.RuntimeException: Couldn't find maven installation

Sé que puedo agregar una línea a mi Jenkinsfile así:

 rtMaven.tool = MAVEN_TOOL

... que puedo usar para especificar una herramienta Jenkins preconfigurada para apuntar el complemento Artifactory a Maven. Sin embargo, me parece que dicha herramienta preconfigurada debería estar en la máquina Jenkins, o en un nodo de compilación, y no dentro de mi contenedor docker.

Entonces, ¿es posible apuntar el complemento Artifactory a una instalación experta dentro de mi contenedor docker?

Gracias.

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

0

Esto probablemente debería solucionarse en su complemento jenkins, pero como "Christopher Orr" sugirió mapear las variables del entorno en el nivel de etapa de la tubería a las mismas establecidas en el trabajo del contenedor.

Por ejemplo

 stage('mystage') { environment { // If your using the official maven image, these are probably where it puts it MAVEN_HOME = '/usr/share/maven' JAVA_HOME= '/usr/local/openjdk-8' } steps { sh """ # confirm location of MAVEN_HOME and JAVA_HOME in container and set in environment directive printenv """ ... // call rtMavenRun()
about 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