Grafana: Докер: образы ARM не работают с v6.4.x

Созданный на 2 окт. 2019  ·  39Комментарии  ·  Источник: grafana/grafana

Что случилось :
Grafana 6.4.X ARM в Docker не работает на Raspbian Buster.
Сообщение об ошибке при попытке запустить контейнер:
/run.sh: строка 80: / usr / share / grafana / bin / grafana-server: нет такого файла или каталога

Что вы ожидали :
Очевидно: Grafana работает без ошибок.

Как это воспроизвести (максимально минимально и точно) :
Докер запускает графана / графана

Что еще нам нужно знать? :
Ошибка вызвана несоответствием lib-c: Grafana собирается с ld-linux-armhf.so, но базовый образ Alpine содержит только ld-musl-armv7.so.

Окружающая среда :

  • Версия Grafana: 6.4.X
  • Тип и версия источника данных: InfluxDB
  • ОС Grafana установлена ​​на: Raspbian Buster с Docker
  • Пользовательская ОС и браузер: Windows / Firefox
  • Плагины Grafana: Нет
  • Другое: Нет
aredocker typbug

Самый полезный комментарий

Спасибо всем. Мы объединили это в master, но решили включить это исправление в Grafana v6.5.0, который будет выпущен через пару недель. До тех пор вы можете использовать ночные сборки, если хотите запускать Grafana v6.5-pre ARM-совместимые образы докеров Grafana с помощью тега grafana/grafana:master .

Все 39 Комментарий

Спасибо, что сообщили об этом @theWaldschrat, мы рассмотрим его дальше

@theWaldschrat, какое устройство вы используете? Это 32- или 64-битная архитектура (armv6m, armv7, armv8 и т. Д.)?

Может быть, нам нужно включить https://pkgs.alpinelinux.org/package/edge/main/armhf/libc6-compat в образ докера Grafana?

apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/main libc6-compat

@theWaldschrat, можете ли вы подтвердить, что вышеуказанная проблема решает проблему? Нам сложнее проверить без доступа к реальному устройству ARM. Изображение руки на основе Docker может быть возможным, но мы будем благодарны, если вы сможете нам здесь помочь. благодаря

Устройство представляет собой Raspberry Pi 4B. Технически это ARM64v8, но Raspbian по умолчанию запускает 32-битное ядро ​​и пользовательскую среду, поэтому ARM32v7.

uname -a
ОС хоста:
Linux raspberrypi 4.19.66-v7l+ #1253 SMP Thu Aug 15 12:02:08 BST 2019 armv7l GNU/Linux
Изображение Grafana 6.3.6:
Linux 97f0bb9a456d 4.19.66-v7l+ #1253 SMP Thu Aug 15 12:02:08 BST 2019 armv7l armv7l armv7l GNU/Linux
Изображение Grafana 6.4.X (последнее):
Linux 84a01cb75816 4.19.66-v7l+ #1253 SMP Thu Aug 15 12:02:08 BST 2019 armv7l Linux

Я еще не создал много образов Docker, поэтому я не могу попробовать вышеуказанную команду в новом образе, по крайней мере, не быстро. Но что я сделал: запустил контейнер
docker run -it -p 3001:3000 --entrypoint="bash" --user=root grafana/grafana
Вот результат:

  • При запуске /run.sh вручную выдает такое же сообщение об ошибке, так что это подтверждено.
  • Выполните команду выше: нет ошибок.
  • Снова запустите /run.sh: Новые сообщения об ошибках:
Error relocating /usr/share/grafana/bin/grafana-server: __memset_chk: symbol not found
Error relocating /usr/share/grafana/bin/grafana-server: __memcpy_chk: symbol not found
Error relocating /usr/share/grafana/bin/grafana-server: __vfprintf_chk: symbol not found
Error relocating /usr/share/grafana/bin/grafana-server: __fprintf_chk: symbol not found
  • Запуск ldd /usr/share/grafana/bin/grafana-server больше не жалуется на отсутствие библиотек, но дает те же результаты, что и выше.

Я не эксперт, но думаю, lib-c все еще несовместимы.

@theWaldschrat, спасибо, очень помогли.

Просто чтобы проверить некоторые дополнительные вещи, вы можете попробовать их специально, чтобы убедиться, что у вас та же проблема:
docker run -it -p 3001:3000 --entrypoint="bash" --user=root grafana/grafana-arm32v7-linux:6.4.1

docker run -it -p 3001:3000 --entrypoint="bash" --user=root grafana/grafana-arm32v7-linux:6.4.0-beta1

На всякий случай, можете ли вы попробовать запустить и запустить grafana-server:
docker run -it -p 3001:3000 --entrypoint="bash" --user=root grafana/grafana-arm64v8-linux:6.4.1

Первые два делают то же самое, что описано ранее.
Запуск /run.sh или напрямую /usr/share/grafana/bin/grafana-server не имеет значения.

Третий даже не начинается с несоответствия арки:
standard_init_linux.go:211: exec user process caused "exec format error"

У меня такая же проблема, и мне пришлось перейти на версию 6.3.6 , поэтому кажется, что все изображения 6.4.x базе Alpine не работают для ARMv7.

Благодарю. После того, как вы вошли в bash, можете ли вы попробовать установить пакет musl-dev с помощью apk add?

musl-dev устанавливается нормально для меня, но не влияет на проблему, с libc6-compat или без него.

Установка apks glibc с https://github.com/armhf-docker-library/alpine-pkg-glibc/releases позволяет запустить grafana-server . Если я правильно понимаю проблему, лучше статически связать двоичные файлы с musl.

Идея Alpine состоит в том, чтобы статически связываться с musl вместо динамического связывания с glibc. Он быстрее, меньше, стабильнее и потенциально безопаснее. По крайней мере, они так говорят.
Но, насколько я понимаю, Grafana создается за пределами целевого образа, связывающегося с glibc, поэтому, вероятно, лучше всего либо установить glibc, как указано выше, либо использовать другой базовый образ, который уже включает glibc.

Учитывая, что это изменение фактически нарушило образ докера для устройств ARM, я ожидал чего-то лучшего, чем тег «требуется исследование».

Вздох! Полагаю, проклятие «гибкой разработки».

Я могу воспроизвести ошибку в OS X, даже если она немного отличается от вашей:

$ docker run --platform arm grafana/grafana
/lib/ld-linux-armhf.so.3: No such file or directory

Я посмотрю, смогу ли я это исправить.

У меня может быть руководство по основной причине этой проблемы, надеюсь, я смогу исправить ее к завтра.

Работаем над решением этой проблемы, создавая двоичные файлы musl в дополнение к glibc.

Просто столкнулся с этим. Моя система - aarch64 (RockPro64), и я получаю ту же ошибку:

/run.sh: line 80: /usr/share/grafana/bin/grafana-server: No such file or directory

Основываясь на работе # 19798, мы добавили тег с именем dev-musl в репозитории Grafana Docker Hub. Мы смогли протестировать только образы докеров arm и arm64 с помощью эмуляции, поэтому мы просим всех помочь в тестировании образов докеров arm и arm64, чтобы убедиться, что они работают должным образом. Никакой манифест не был отправлен в grafana / grafana, поэтому, если вы хотите попробовать arm или arm64, вам нужно вручную указать правильный репозиторий, см. Ниже.

linux / amd64 :
docker run <args> grafana/grafana:dev-musl

Linux / arm64 :
docker run <args> grafana/grafana-arm64v8-linux:dev-musl

Linux / рука :
docker run <args> grafana/grafana-arm32v7-linux:dev-musl

Обратите внимание, что эти образы основаны на текущей ветке разработчика (master / Grafana v6.5.0-pre) Grafana, поэтому, если вы хотите протестировать с существующей установкой Grafana, не забудьте сделать резервную копию существующих данных .

Объем испытаний:

  • Убедитесь, что контейнер может успешно работать, и использование docker logs <image name> не должно выводить ничего неожиданного, например ошибок.
  • Если возможно, попробуйте добавить / подключиться к источнику данных и отобразить приборную панель / панель
  • Необязательно: убедитесь, что вы можете загружать / устанавливать плагины
  • Поделитесь своим мнением в этом выпуске или PR # 19798, оставив комментарий, рассказывающий, какое устройство / архитектуру вы использовали, и результат.

заранее спасибо

$ uname -a
Linux black-pearl 4.14.70-hypriotos-v7+ #1 SMP Sat Sep 22 05:54:18 UTC 2018 armv7l GNU/Linux

LGTM работает на Raspberry 3B

  • [x] Убедитесь, что контейнер может успешно работать и использовать журналы докеров.не должен выводить ничего неожиданного, например ошибок.
  • [x] Если возможно, попробуйте добавить / подключиться к источнику данных и отобразить информационную панель / панель
  • [x] Необязательно: убедитесь, что вы можете загружать / устанавливать плагины

SBC: Cubietruck (он же CubieBoard 3)

$ uname -a
Linux fernia 4.19.62-sunxi # 5.92 SMP среда 31 июля 22:07:23 CEST 2019 armv7l armv7l armv7l GNU / Linux

LGTM

  • [x] Убедитесь, что контейнер может успешно работать, и использование журналов докеров не должно выводить ничего неожиданного, например ошибок.
  • [x] Если возможно, попробуйте добавить / подключиться к источнику данных и отобразить информационную панель / панель
  • [x] Необязательно: убедитесь, что вы можете загружать / устанавливать плагины

Большое спасибо за быстрые ответы и помощь. Очень ценится.

Согласен, спасибо за помощь в тестировании!

Вт, 22 октября 2019 г., 19:05 Маркус Эфраимссон [email protected]
написал:

Большое спасибо за быстрые ответы и помощь. Очень ценится.

-
Вы получаете это, потому что вас назначили.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/grafana/grafana/issues/19585?email_source=notifications&email_token=AACEVV4YMCESH5G7XWTY3QLQP4XHPA5CNFSM4I42J4CKYY3PNVWWK3TUL52HS4DFMVREG6
или отписаться
https://github.com/notifications/unsubscribe-auth/AACEVV3OBIAWAV3ZNAP4XEDQP4XHPANCNFSM4I42J4CA
.

uname -a
Linux raspberrypi4 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux

малина пи 4b

docker -v
Docker version 19.03.4, build 9013bf5
  • [x] Убедитесь, что контейнер может успешно работать, и использование журналов докеров не должно выводить ничего неожиданного, например ошибок.
  • [X] если возможно, попробуйте добавить / подключиться к источнику данных и отобразить информационную панель / панель (infxdb с панелью графиков
  • [] Необязательно: убедитесь, что вы можете загружать / устанавливать плагины.

LGTM: raspberry pi 4

$ uname -a
Linux worker-3 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux
  • [x] Убедитесь, что контейнер может успешно работать, и использование журналов докеров не должно выводить ничего неожиданного, например ошибок.
  • [x] если возможно, попробуйте добавить / подключиться к источнику данных и отобразить приборную панель / панель (infxdb, prometheus, loki)
  • [x] Убедитесь, что вы можете загружать / устанавливать плагины (raintank-worldping-app, grafana-kubernetes-app, DevOpsprodigy-kubegraf-app, grafana-piechart-panel)

LGTM

рокчип рок64

$ uname -a
Linux rock64 4.4.132-1072-rockchip-ayufan-ga1d27dba5a2e #1 SMP Sat Jul 21 20:18:03 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
  • [x] Убедитесь, что контейнер может успешно работать, и использование журналов докеров не должно выводить ничего неожиданного, например ошибок.
  • [x] если возможно, попробуйте добавить / подключиться к источнику данных и отобразить приборную панель / панель (infxdb, prometheus, loki)
  • [] Убедитесь, что вы можете загружать / устанавливать плагины (raintank-worldping-app, grafana-kubernetes-app, DevOpsprodigy-kubegraf-app, grafana-piechart-panel)

Уровень навыков докера
Нуб
Уровень навыков Grafana
Нуб
-uname -a
Linux SwingerPictureServer 4.19.75-v7 + # 1270 SMP ........... armv71 GNU / Linux
HW
Raspberry Pi 3B
compose.sh файл:
docker run \
--name Grafana_test \
-p 3001: 3001 \
-e "GF_SERVER_ROOT_URL = http: //: 3001 "\
-e "GF_SECURITY_ADMIN_PASSOWRD ="\
--mount type = bind, source = "/ home / pi / DockerConf / Grafana / test / config", target = "/ etc / grafana": ro \
графана / графана-arm32v7- linux: dev-musl

Лог-файл:
warn: msg = "phantomJS устарел и будет удален в следующем выпуске ...

Спасибо всем. Мы объединили это в master, но решили включить это исправление в Grafana v6.5.0, который будет выпущен через пару недель. До тех пор вы можете использовать ночные сборки, если хотите запускать Grafana v6.5-pre ARM-совместимые образы докеров Grafana с помощью тега grafana/grafana:master .

Добавьте примечание в Docker Hub, чтобы было проще найти эту проблему. Если вы сейчас загружаете grafana / grafana, вы все равно получаете нефункциональное изображение на armhf.

Просто комментирую, чтобы отметить, что grafana / grafana-arm32v7- linux: latest теперь отлично работает для меня (это изображение ), поэтому я открепил версии 👍

@mhansen, вы можете использовать напрямую базовое изображение (grafana / grafana: latest), оно мультиархитектурное :)

В настоящее время я использую grafana / grafana: 6.5.1@sha256 : befcd84da2c1f3310b23d93ba9eec4a80df4c86c04bd39455623ac632fbcefdd в кластере ARM.

@theWaldschrat @pedroetb @mhansen @herm @SySfRaMe @ krystian-wojtas @pgolm @gcgarner @JochenLutz @iwittkau @JasonSwindle @ protik77 @ ata4 мы могли бы использовать некоторую помощь в тестировании новых сборок (образы Docker и архивы tar с различными архитектурами ARM) на различных архивах ARM помочь? Мы были бы признательны!

Рассматриваемые образы Docker

Рассматриваемые архивы tar

Архивы MUSL предназначены для Alpine Linux, GLIBC - для обычных дистрибутивов Linux:

RPMs

Образ докера
grafana / grafana-arm64v8- linux: master-df1d43167af035c6819923ecce135056f37c79c2-new-pipeline отлично работает на Raspberry Pi 4B с ядром 4.19.97-v8 + и Docker CE 19.03.5.

Спасибо @volschin!

Возникла проблема с контейнером сегодня после запуска около 24 часов (без создания шаблона). Ничего подобного за последние месяцы не случилось. Так что, возможно, есть проблема со стабильностью.

Возникла проблема с контейнером сегодня после запуска около 24 часов (без создания шаблона). Ничего подобного за последние месяцы не случилось. Так что, возможно, есть проблема со стабильностью.

Какую именно проблему вы видели на @volschin?

@ aknuds1 извините, я еще не успел полностью протестировать новые образы docker arm. Есть ли способ автоматизировать тестирование?

У меня нет автоматизированного метода, извините @iwittkau.

Я больше не вижу grafana / grafana: latest как многоархивный, только amd64 / linux.

$ docker run --rm mplatform/mquery grafana/grafana
Image: grafana/grafana
 * Manifest List: No
 * Supports: amd64/linux

Я перешел на графана / графана: мастер

Я больше не вижу grafana / grafana: latest как мультиархив, только amd64 / linux.

$ docker run --rm mplatform/mquery grafana/grafana
Image: grafana/grafana
 * Manifest List: No
 * Supports: amd64/linux

Я перешел на графана / графана: мастер

@mhansen Интересно, спасибо за внимание. Я должен это проверить.

Как бы то ни было, я сейчас использую grafana/grafana-arm32v7-linux:latest . Хоть и установил 6.7.1.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги