Что случилось :
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.
Окружающая среда :
Спасибо, что сообщили об этом @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
Вот результат:
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>
не должно выводить ничего неожиданного, например ошибок.заранее спасибо
$ 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
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
Большое спасибо за быстрые ответы и помощь. Очень ценится.
Согласен, спасибо за помощь в тестировании!
Вт, 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
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
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
Уровень навыков докера
Нуб
Уровень навыков 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: //
-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 помочь? Мы были бы признательны!
Архивы MUSL предназначены для Alpine Linux, GLIBC - для обычных дистрибутивов Linux:
Образ докера
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.
Самый полезный комментарий
Спасибо всем. Мы объединили это в master, но решили включить это исправление в Grafana v6.5.0, который будет выпущен через пару недель. До тех пор вы можете использовать ночные сборки, если хотите запускать Grafana v6.5-pre ARM-совместимые образы докеров Grafana с помощью тега
grafana/grafana:master
.