New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Raspberry Pi 3 (Raspbian) Docker Support #332

Open
HiseTake opened this Issue Dec 13, 2017 · 20 comments

Comments

Projects
None yet
5 participants
@HiseTake
Copy link

HiseTake commented Dec 13, 2017

I tried to install on a Raspberry Pi 3 running raspbian, but I get the following error when running ./docker-install.sh

Pulling influxdb (influxdb:alpine)...
alpine: Pulling from library/influxdb
ERROR: no matching manifest for linux/arm in the manifest list entries
Creating network "azuracast_default" with the default driver
Creating volume "azuracast_db_data" with default driver
Creating volume "azuracast_influx_data" with default driver
Creating volume "azuracast_tmp_data" with default driver
Creating volume "azuracast_station_data" with default driver
Pulling influxdb (influxdb:alpine)...
alpine: Pulling from library/influxdb
ERROR: no matching manifest for linux/arm in the manifest list entries
Pulling influxdb (influxdb:alpine)...
alpine: Pulling from library/influxdb
ERROR: no matching manifest for linux/arm in the manifest list entries

Does anyone know how to solve it?

@SlvrEagle23

This comment has been minimized.

Copy link
Member

SlvrEagle23 commented Dec 13, 2017

@HiseEiichi The Docker installation isn't currently supported for ARM-based computers, because it depends on building certain radio software from source that isn't supported on that architecture.

The traditional installation should still work, however.

@HiseTake

This comment has been minimized.

Copy link

HiseTake commented Dec 13, 2017

@SlvrEagle23 Does the traditional installation support Raspbian (Debian)? Thank you for your support. I will try to perform the traditional installation.

@HiseTake

This comment has been minimized.

Copy link

HiseTake commented Dec 13, 2017

@SlvrEagle23 I installed Ubuntu 16.04 Server and now I have the following error while performing the traditional installation.

I get the following error when running ./install.sh

totermw_2017-12-13_01-00-02

Note¹: I typed apt-get install -f manually and restarted the traditional installation, the error persists.

SlvrEagle23 added a commit that referenced this issue Dec 13, 2017

@SlvrEagle23

This comment has been minimized.

Copy link
Member

SlvrEagle23 commented Dec 13, 2017

@HiseEiichi Just pushed up a small fix that may help with this. Try it now.

@HiseTake

This comment has been minimized.

Copy link

HiseTake commented Dec 13, 2017

@SlvrEagle23 Nginx was installed, now have a new error.

Failed to start nginx

TASK [services : Enable and restart all core services] **********************************************************************************************
changed: [localhost] => (item=influxdb)
changed: [localhost] => (item=mysql)
changed: [localhost] => (item=php7.1-fpm)
failed: [localhost] (item=nginx) => {"changed": false, "item": "nginx", "msg": "Unable to start service nginx: Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.\n"}
changed: [localhost] => (item=redis)

Running systemctl status, it returns this

root@ubuntu:/var/azuracast/www# systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2017-12-13 14:35:41 UTC; 23min ago
Docs: man:nginx(8)
Process: 20628 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=203/EXEC)
Dec 13 14:35:41 ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 13 14:35:41 ubuntu systemd[1]: nginx.service: Control process exited, code=exited status=203
Dec 13 14:35:41 ubuntu systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Dec 13 14:35:41 ubuntu systemd[1]: nginx.service: Unit entered failed state.
Dec 13 14:35:41 ubuntu systemd[1]: nginx.service: Failed with result 'exit-code'.

@HiseTake

This comment has been minimized.

Copy link

HiseTake commented Dec 13, 2017

I found this error using journalctl-xe

root@ubuntu:/var/azuracast/www# journalctl -xe
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z 'network' registered for diagnostics monitoring service=monitor
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z 'system' registered for diagnostics monitoring service=monitor
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z Starting precreation service with check interval of 10m0s, advance period of 30m0s se
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z Starting snapshot service service=snapshot
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z Starting continuous query service service=continuous_querier
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z Starting HTTP service service=httpd
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z Authentication enabled:false service=httpd
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z Listening on HTTP:[::]:8086 service=httpd
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z Starting retention policy enforcement service with check interval of 30m0s service=re
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z Listening for signals
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z Storing statistics in database '_internal' retention policy 'monitor', at interval 10
Dec 13 15:49:11 ubuntu influxd[25939]: [I] 2017-12-13T15:49:11Z Sending usage statistics to usage.influxdata.com
Dec 13 15:55:09 ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
-- Subject: Unit nginx.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit nginx.service has begun starting up.
Dec 13 15:55:09 ubuntu systemd[26441]: nginx.service: Failed at step EXEC spawning /usr/sbin/nginx: No such file or directory
-- Subject: Process /usr/sbin/nginx could not be executed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- The process /usr/sbin/nginx could not be executed and failed.
--
-- The error number returned by this process is 2.
Dec 13 15:55:09 ubuntu systemd[1]: nginx.service: Control process exited, code=exited status=203
Dec 13 15:55:09 ubuntu systemd[1]: Failed to start A high performance web server and a reverse proxy server.
-- Subject: Unit nginx.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit nginx.service has failed.
--
-- The result is failed.
Dec 13 15:55:09 ubuntu systemd[1]: nginx.service: Unit entered failed state.
Dec 13 15:55:09 ubuntu systemd[1]: nginx.service: Failed with result 'exit-code'.

Typing NGINX in the terminal, he returns this

root@ubuntu:/usr/sbin# nginx
nginx: [emerg] unknown directive "nchan_publisher" in /etc/nginx/sites-enabled/00-azuracast:7

@SlvrEagle23

This comment has been minimized.

Copy link
Member

SlvrEagle23 commented Dec 14, 2017

@HiseEiichi It seems nchan, the service that AzuraCast uses to push out live now-playing and other updates, is having some trouble with compatibility with the ARM architecture.

I'm not sure that there's an easy solution to that, actually. I would normally go the initial route you went and say "just go with Docker", but then there's the issue of Influx not being built for ARM on there.

Bit of a rock and a hard place situation here. I'll keep looking into it.

@HiseTake

This comment has been minimized.

Copy link

HiseTake commented Dec 14, 2017

@SlvrEagle23 Thank you for everything.

Apparently, the InfluxDB wouldn't be the only one with problems on ARM architecture, Mariadb is also incompatible with ARM. Do you think it would be possible to solve this problem of the incompatibility of architecture, using other images as the InfluxDB made by Hypriot?

Here are the two images modified for ARM

hypriot/rpi-influxdb - https://hub.docker.com/r/hypriot/rpi-influxdb/
jsurf/rpi-mariadb - https://hub.docker.com/r/jsurf/rpi-mariadb/

@SlvrEagle23 SlvrEagle23 changed the title Error installing in Raspbian Raspberry Pi 3 (Raspbian) Docker Support Jan 14, 2018

@SlvrEagle23 SlvrEagle23 added the bug label Jan 14, 2018

@SlvrEagle23 SlvrEagle23 self-assigned this Jan 14, 2018

@SlvrEagle23

This comment has been minimized.

Copy link
Member

SlvrEagle23 commented Jan 25, 2018

Reclassing this as an enhancement at this point, since it hinges on package distributors building the packages in an ARMHF-friendly format, in particular nginx and nchan. While we can operate without nchan and revert back to API polling, having two separate implementations in the system is too much maintenance and potential for error in my opinion.

@SlvrEagle23 SlvrEagle23 added enhancement and removed bug labels Jan 25, 2018

@SlvrEagle23

This comment has been minimized.

Copy link
Member

SlvrEagle23 commented Feb 15, 2018

After removing nchan as a limiter for this issue, the current limitation is the fact that MariaDB 10.1 and 10.2 aren't built for the ARMHF version of Ubuntu. These newer versions of MariaDB are necessary for AzuraCast to run properly, because of improvements they've made to handling of UTF8MB4 string length in these newer versions.

Once this is addressed, we can revisit ARM compatibility again.

@HiseTake

This comment has been minimized.

Copy link

HiseTake commented Feb 23, 2018

I am grateful that you are still looking at this problem even though you have to solve many others.

I will do some testing this weekend using some of the modified MariaDB images as I submitted in the last reply. I need to test compatibility with InfluxDB after so many updates.

@HiseTake

This comment has been minimized.

Copy link

HiseTake commented Jun 8, 2018

Hey @SlvrEagle23 , how are you? I hope you're well

After a long time, I came back with good and bad news about installing on a Raspberry pi 3 B running Ubuntu Bionic LTS

This time the installation went much further than the previous one, making it possible to login to the panel using the existing demo account. Unfortunately it generates several errors of tables saying that they are nonexistent. I've tried to recreate them but only the icecast turns on, Liquidsoap does not start.

I leave below error print and error that happens.

totermw_2018-06-08_19-12-50

(Log removed by @SlvrEagle23 for ease of reading the issue)

Would you have some more direct means of contact? If it's of interest, I can make my Raspberry available to you for testing.

@HiseTake

This comment has been minimized.

Copy link

HiseTake commented Jun 9, 2018

Setup is released, but there is table error. I'll wait for an answer.

2018-06-08_20-12-53

Looking better at the above error, I found something in common at the beginning that would be "max key length is 767 bytes". Nothing more.

@xewl

This comment has been minimized.

Copy link
Contributor

xewl commented Jun 9, 2018

The station_media field has a VARCHAR(500) field type, which needs 1560 bytes.
Long story short, and as previously stated by @SlvrEagle23, it's a limit which would seemingly not work with Azuracast.

It has to do with the InnoDB table regarding UTF8mb4.
This thread on SO will explain deeper.

The maximum in older versions would be

  • VARCHAR(191) for UTF8mb4 (4 bytes per char),
  • and VARCHAR(255) for UTF8 (3 bytes per char)
@HiseTake

This comment has been minimized.

Copy link

HiseTake commented Jun 9, 2018

Searching a little more, I discovered that the problem is the version of MariaDB that would be 10.1.12 and does not allow a key of that size. You would need a version 10.2 that is not available for arm7l to accept a larger key.

@SlvrEagle23

This comment has been minimized.

Copy link
Member

SlvrEagle23 commented Jun 9, 2018

@HiseEiichi Yep, I should've probably been more clear in my earlier post, but it's the fact that MariaDB 10.2 isn't built for the RasPi that is keeping us from being able to use it currently. MariaDB 10.2 introduced support for longer VARCHAR columns with the UTF8MB4 encoding, and this is necessary for us to store the needed length of information in a number of fields.

Once we have an update about 10.2 being deployed for RasPi's, we can revisit this issue, and it's likely that AzuraCast will install without any problems.

Unfortunately, it doesn't seem to be much of a priority for the MariaDB team, as ARMHF is a fairly small slice of market segment.

@HiseTake

This comment has been minimized.

Copy link

HiseTake commented Jun 9, 2018

Enjoying the moment. I tried installing from Docker, but I get the following error.

[FATAL tini (7)] exec dockerize failed: Exec format error

totermw_2018-06-09_03-15-07

@amitx11

This comment has been minimized.

Copy link

amitx11 commented Jun 19, 2018

Which installer script does work on the OVH SYS Armv7 server and which os to choose ?

@SlvrEagle23

This comment has been minimized.

Copy link
Member

SlvrEagle23 commented Jun 19, 2018

@amitx11 As I said before in the previous issue, AzuraCast does not currently support ARMv7, ARM, ARMHF, etc. due to an issue with MariaDB 10.2 not being packaged for that platform yet. I'm continuing to monitor progress on that front and when the situation changes, I will update the AzuraCast code accordingly. For now, however, your platform is not supported.

@surihost

This comment has been minimized.

Copy link

surihost commented Sep 1, 2018

Will this not work with azuracast ?

https://github.com/459below/docker-mariadb-armv7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment