Describe the bug
Radarr fails to start when running it inside docker on Raspberry PI.
Tried both official docker containers: linuxserver and hotio.
To Reproduce
Steps to reproduce the behavior:
docker ps -aExpected behavior
Radarr starts without issues
Platform Information (please complete the following information):
Debug Logs
In my case Docker will not output any logs.
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-start-container: executing...
----------------------------------------------------------------------
ENVIRONMENT
----------------------------------------------------------------------
PUID=1001
PGID=1001
UMASK=002
TZ=Europe/Amsterdam
ARGS=
DEBUG=no
----------------------------------------------------------------------
Executing usermod...
Applying permissions to /config
Creating directory /config/app
[cont-init.d] 00-start-container: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
However, linuxserver has a CI report https://lsio-ci.ams3.digitaloceanspaces.com/lspipepr/radarr/3.0.0.3792-pkg-78c91d43-pr-105/index.html
where for arm32v7 it can be seen that Radarr outputs an exception.
Fatal error. System.Runtime.InteropServices.SEHException (0x80004005): External component has thrown an exception.
at System.Reflection.Metadata.AssemblyDefinitionHandle.op_Implicit(System.Reflection.Metadata.AssemblyDefinitionHandle)
at System.Reflection.Metadata.AssemblyDefinition.GetCustomAttributes()
at System.Diagnostics.FileVersionInfo.LoadManagedAssemblyMetadata(System.Reflection.Metadata.MetadataReader, Boolean)
at System.Diagnostics.FileVersionInfo.TryLoadManagedAssemblyMetadata()
at System.Diagnostics.FileVersionInfo.GetVersionInfo(System.String)
at NLog.Common.InternalLogger.LogAssemblyVersion(System.Reflection.Assembly)
at NLog.Config.ConfigurationItemFactory.LoadNLogExtensionAssemblies(NLog.Config.ConfigurationItemFactory, System.Reflection.Assembly, System.String[])
at NLog.Config.ConfigurationItemFactory.BuildDefaultFactory()
at NLog.Config.ConfigurationItemFactory.get_Default()
at NLog.Layouts.Layout.op_Implicit(System.String)
at NLog.Targets.TargetWithLayout..ctor()
at NzbDrone.Common.Instrumentation.Sentry.SentryTarget..ctor(System.String)
at NzbDrone.Common.Instrumentation.NzbDroneLogger.RegisterSentry(Boolean)
at NzbDrone.Common.Instrumentation.NzbDroneLogger.Register(NzbDrone.Common.EnvironmentInfo.IStartupContext, Boolean, Boolean)
at NzbDrone.Console.ConsoleApp.Main(System.String[])
Since both linuxserver and hotio use the same binaries from: https://radarr.servarr.com/v1/update/nightly/updatefile
I would expect that this is a problem of Radarr compilation for arm32
Duplicate. The issue is that raspbian does not provide new enough libseccomp2 for docker to work. Native Radarr arm32 works fine.
I'm succesfully using docker on a Raspberry Pi.
You can manually update libseccomp2 to the newest version and it will work.
Get the latest version for the raspberry pi from https://packages.debian.org/de/sid/armhf/libseccomp2/download and install it.
wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.4.4-1_armhf.deb
sudo apt-get install ./libseccomp2_2.4.4-1_armhf.deb
do that ^^^or start with --privileged if you dare
(Thanks to @hotio for the fix)
@JBou thanks for the solutions. It works perfectly.
Just a small remark for anybody who may come across this issue:
libseccomp has to be updated on the host machine (Raspberry Pi OS) and not inside the docker container.
Also for the installation command. If you have problems with the installation forcing you to remove the current version before installing the new one. You can use:
sudo dpkg -i <you_version_of_libseccomp2_2.x.x-x_armhf.deb>
@JBou Thanks, Mate! That indeed did the trick for me too!
It should be mentioned that Radarr now has an official wiki entry for this problem:
https://wiki.servarr.com/Radarr_FAQ#I_am_using_a_Pi_and_Raspbian_and_Radarr_will_not_launch
Most helpful comment
I'm succesfully using docker on a Raspberry Pi.
You can manually update libseccomp2 to the newest version and it will work.
Get the latest version for the raspberry pi from https://packages.debian.org/de/sid/armhf/libseccomp2/download and install it.
do that ^^^or start with --privileged if you dare
(Thanks to @hotio for the fix)