Jenkins tidak menggunakan sistem lokal


10

Saya memiliki perilaku yang menarik di Jenkins.
Shell Jenkins tidak menggunakan lokal sistem saya.

Jenkins berjalan sebagai pengguna jenkinsdi sistem saya.

Masuk sebagai jenkinsmelalui SSH:

locale ditampilkan:

LANG = en_US.UTF-8
LANGUAGE = en_US: en
LC_CTYPE = "en_US.UTF-8"
dll ...

envacara LANGdan LANGUAGEvariabel:

LANG = en_US.UTF-8
LANGUAGE = en_US: en

id menunjukkan ID pengguna:

uid = 1008 (jenkins) gid = ...

Masukkan perintah di atas ke shell pekerjaan jenkins:

locale ditampilkan:

LANG =
LANGUAGE =
LC_CTYPE = "POSIX"
dll ...

envtidak tidak menunjukkan LANGdan LANGUAGEvariabel

id menunjukkan ID pengguna (seperti yang diharapkan):

uid = 1008 (jenkins) gid = ...

file:

/etc/profile mengandung:

export LANG = en_US.UTF-8
export LANGUAGE = en_US: en

/etc/default/locale mengandung:

export LANG = en_US.UTF-8
export LANGUAGE = en_US: en

skrip startup /etc/init.d/jenkinsharus mengekspor lokal sistem:

# memuat lingkungan
jika [-r / etc / default / locale]; kemudian
. / etc / default / local
export LANG LANGUAGE
elif [-r / etc / environment]; kemudian
. / etc /
ekspor lingkungan LANG LANGUAGE
fi


Tentu saja saya reboot setelah memodifikasi locales;)

Apache juga menggunakan locales
sistem. Sistem saya adalah instalasi Ubuntu 14.04.
Apakah saya ketinggalan memeriksa sesuatu yang lain?

Terima kasih telah membaca!
Semoga ada yang bisa membantu :)


Jenkins tampaknya mengatur ulang semua variabel lingkungan di shell build. Periksa pengaturan proyek. Ada juga plugin env-inject .
jofel

Solusi Anda harus menjadi jawaban, bukan edit untuk pertanyaan Anda ...
jasonwryan

Jawaban:


10

Larutan:

Ini terjadi karena master Jenkins terhubung ke mesin slave melalui non-interactiveshell, jadi /etc/profiletidak dieksekusi, dan juga /etc/default/localetidak memiliki efek apa pun.
non-interactivekerang biasanya menggunakan ~/.bashrc.

Hampir semua detail tentang topik ini dapat ditemukan di askubuntu:
/ubuntu/247738/why-is-etc-profile-not-invoked-for-non-login-shell

menambahkan ke ~/.bashrc:

export LANG = en_US.UTF-8
export LANGUAGE = en_US: en


melakukannya untukku.

'Masalah budak' ini juga dibahas di sini:
https://groups.google.com/forum/#!topic/jenkinsci-users/hscDs4pKIoU https://groups.google.com/forum/#!topic/jenkinsci-users / g0fNnDltqeM Salam, whosit

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.