2012-01-08 11 views
14

Me postulo Jenkins en un servidor Linux y muestra el momento equivocado :(Jenkins muestra el momento equivocado?

Situación: estoy corriendo otra aplicación Java (Tomcat en el que también se ejecuta Jenkins) que muestra la hora correcta en los archivos de registro (utilizo . logback través slf4j) el BIOS es ajustado a la hora GMT (hora del sistema) como informa aquí: http://www.linuxsa.org.au/tips/time.html

en Linux se indica en/etc/sysconfig/reloj que el reloj del sistema está en UTC y en el que la zona horaria estamos ubicados. Estoy en UTC + 1

El comando de fecha de ejecución en Linux muestra la hora local correcta. e: Dom Ene 8 12:11:35 CET 2012 Pero Jenkins muestra el tiempo, más 1 hora: (...

La configuración Jenkins muestra: user.timezone = Europa/Ámsterdam (que es GMT + 1)

Creo que Jenkins (java) cree que el reloj local está configurado en UTC de modo que se agrega 1 hora.

¿Cómo soluciono esto?

+0

Esto obviamente no es una pregunta de programación. Debería consultar serverfault.com –

+0

Pero entonces, ¿por qué no es correcto en Jenkins, pero lo hace en mi propia aplicación? (ambas aplicaciones de Java). Ya revisé tres veces todas las configuraciones del reloj de Linux – edbras

+0

Tiene un problema de aplicación/administrador no es un problema de programación. –

Respuesta

13

Ver aquí: https://wiki.jenkins-ci.org/display/JENKINS/Change+time+zone

En resumen, se puede establecer la propiedad del sistema, ya sea modificando las opciones de JVM,

java -Dorg.apache.commons.jelly.tags.fmt.timeZone=TZ ... 

o cambiar la configuración de Jenkins en/etc/default/Jenkins (Debian) o/etc/sysconfig/Jenkins (Red Hat):

JAVA_ARGS="-Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York" 

también mencionó -Duser.timezone="..." es una opción, pero pueden causar problemas/interferir con otros contextos (s algunas salvedades vagas con la mano &: el viaje en el tiempo siempre es impredecible).

En general (en mi experiencia), no cambian la hora del sistema, ya que nosotros, nuestros servidores & viven nuestros datos en un mundo global & debe ser el manejo, el envío, la comparación de todos los tiempos en UTC hasta el último momento posible : generalmente esa es la GUI (capa de presentación) justo antes de mostrarse (... si incluso entonces). (Nuestros resultados del sistema de compilación en realidad producen datos que se envían a otro sistema en otra zona horaria).

+1

Tenemos user.timezone configurado en la zona horaria correcta, pero Jenkins todavía está utilizando UTC. Resulta que el maestro está configurado correctamente, pero los esclavos no lo están. ¿Cómo pueden los esclavos establecerse en la zona horaria correcta? –

14

Si está ejecutando Jenkins con Docker, puede agregar -e JAVA_OPTS=-Duser.timezone=TZ a los argumentos del acoplador.

docker run -e JAVA_OPTS=-Duser.timezone=$TZ jenkins 

Todos los disponibles TZ se puede encontrar here.

0

En Jenkins en Ubuntu 2.63 LTS 14.04.5 establecer

JAVA_ARGS="-Djava.awt.headless=true -Duser.timezone=America/Los_Angeles" 

en /etc/default/jenkins y luego hacer

sudo service jenkins stop 
sudo service jenkins start 

trabajaron para mí para cambiar la zona horaria a la UTC a la TFD.

1

Pon esto en un Dockerfile y funcionará;

RUN echo "import hudson.model.*;" > 
/var/jenkins_home/init.groovy.d/timezone.groovy && \ 
echo "import jenkins.model.*;" >> 
/var/jenkins_home/init.groovy.d/timezone.groovy && \ 
echo "System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 
'America/Denver')" >> /var/jenkins_home/init.groovy.d/timezone.groovy 

$ JENKINS_HOME/init.groovy.d/*. Maravilloso conseguirá ejecutada en el arranque.

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 
'America/Denver') 

Eso establece la zona horaria.

Cuestiones relacionadas