Bagaimana cara menjalankan google chrome tanpa kepala di docker?
Masalah saya adalah bagaimana menjalankan google chrome di kontainer docker untuk pengujian e2e.
Saya membuat Dockerfile
dari image resmi Jenkins, tetapi ketika mencoba menjalankan google chrome, google chrome crash dan menampilkan error:
Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted
Trace/breakpoint trap (core dumped)
Image docker Jenkins menggunakan Debian jessie
.
Saya dapat menjalankan google chrome dengan flag --headless
dan server X tidak diperlukan.
Ini adalah file docker saya:
Gambar resmi Jenkins:
Repo seseorang menjalankan google chrome dengan GUI dari docker:
Pendekatan pertama saya adalah menggunakan xvbf
, tetapi prosesnya lebih sederhana ketika menggunakan flag --headless
.
Saya bisa menjalankan chrome di Ubuntu server dengan perintah yang sama untuk instalasi, tetapi di docker gagal.
Setelah maksud lain, saya menggunakan flag -tidak ada-sandbox
, tetapi gambar docker menunjukkan kesalahan berikutnya.
[0427/180929.595479:WARNING:audio_manager.cc(295)] Multiple instances of AudioManager detected
[0427/180929.595537:WARNING:audio_manager.cc(254)] Multiple instances of AudioManager detected
libudev: udev_has_devtmpfs: name_to_handle_at on /dev: Operation not permitted
Sebenarnya saya menjalankan perintah ini:
google-chrome-stable --headless --disable-gpu --no-sandbox http://www.google.com
Menggunakan gambar ini
alpeware/chrome-headless-trunk
bekerja untuk saya di ubuntu! Perintah yang digunakan dalam kontainer itu untuk meluncurkan headless chrome adalah sebagai berikut:berikut ini adalah video singkat dari kontainer yang sedang beraksi
Saya meluncurkan container di Ubuntu dengan perintah ini:
kemudian menggunakan Chrome untuk terhubung ke port debug di
localhost:9222
Dengan beberapa modifikasi, Anda mungkin bisa menjalankan ini di Jenkins!
Sumber
Saya tidak punya jawabannya, tetapi saya tahu sebuah kontainer yang berhasil meluncurkan Chrome tanpa kepala di Docker. Yang selenium:
Selenium Chrome Node
Saya menggunakannya untuk pengujian otomatis webapp saya di Chrome
Semoga membantu
Saya memperluas Dockerfile default Selenium Chrome Node dengan mengikuti
Dan run.sh saya adalah
Jadi saya dapat menggunakan gambar default sebagai node Jenkins