Can't identify movies when running inside docker - roydbt - 2024-01-21
I am running Jellyfin inside the following docker-compose.yml:
Code: version: "3"
services:
nginx-proxy:
image: nginxproxy/nginx-proxy
container_name: ngnix-proxy
ports:
- '80:80'
environment:
DEFAULT_HOST: jellyfin.server.local
volumes:
- '/var/run/docker.sock:/tmp/docker.sock'
restart: always
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
hostname: jellyfin
environment:
PUID: 1000
PGID: 1000
VIRTUAL_HOST: jellyfin.server.local
VIRTUAL_PORT: 8096
volumes:
- /srv/jellyfin/config:/config
- /srv/jellyfin/cache:/cache
- /media/roydavidson/pi-storage/Media:/media
ports:
- '8096:8096'
- '8920:8920'
- '1900:1900'
- '7359:7359'
restart: always
And when I try to identify a movie, I get this error in the docker logs:
Code: [20:50:44] [ERR] [27] MediaBrowser.Providers.Manager.ProviderManager: Provider TheMovieDb failed to retrieve search results
System.Net.Http.HttpRequestException: Resource temporarily unavailable (api.themoviedb.org:443)
---> System.Net.Sockets.SocketException (11): Resource temporarily unavailable
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|277_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request)
at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at TMDbLib.Rest.RestRequest.SendInternal(HttpMethod method, CancellationToken cancellationToken)
at TMDbLib.Rest.RestRequest.Get[T](CancellationToken cancellationToken)
at TMDbLib.Rest.RestRequestExtensions.GetOfT[T](RestRequest request, CancellationToken cancellationToken)
at TMDbLib.Client.TMDbClient.GetConfigAsync()
at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.EnsureClientConfigAsync()
at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.GetMovieAsync(Int32 tmdbId, String language, String imageLanguages, CancellationToken cancellationToken)
at MediaBrowser.Providers.Plugins.Tmdb.Movies.TmdbMovieProvider.GetSearchResults(MovieInfo searchInfo, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.ProviderManager.GetSearchResults[TLookupType](IRemoteSearchProvider`1 provider, TLookupType searchInfo, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.ProviderManager.GetRemoteSearchResults[TItemType,TLookupType](RemoteSearchQuery`1 searchInfo, BaseItem referenceItem, CancellationToken cancellationToken)
RE: Can't identify movies when running inside docker - tmsrxzar - 2024-01-21
is api.themoviedb.org resolvable and accessible from the container?
docker exec -it jellyfin bash
ping api.themoviedb.org
is resolv.conf populated with a proper dns server?
cat /etc/resolv.conf
can you access api.themoviedb.org at all from the host or container?
wget https://api.themoviedb.org
RE: Can't identify movies when running inside docker - roydbt - 2024-01-21
(2024-01-21, 07:20 PM)tmsrxzar Wrote: is resolv.conf populated with a proper dns server?
cat /etc/resolv.conf
/etc/resolve.conf is as follows:
Code: search lan
nameserver 127.0.0.11
options ndots:0
What is the best way to add some real DNS servers to there? command or entrypoint in the docker-compose?
RE: Can't identify movies when running inside docker - tmsrxzar - 2024-01-21
docker default behavior it's "supposed to" use the hosts' resolv.conf; is that resolv.conf from the host or container?
if it's the hosts; i can't advise where you're supposed to get your dns settings from
if it's the docker (only); https://docs.docker.com/network/#dns-services
compose can also use the dns flags independently of the host
dns:
- x.x.x.x # nameserver
but it would be better to fix the dns at the host level and get it to propagate to the container
RE: Can't identify movies when running inside docker - roydbt - 2024-01-21
(2024-01-21, 08:20 PM)tmsrxzar Wrote: it would be better to fix the dns at the host level and get it to propagate to the container
The host has DNS working, that resolv.conf is from the container. Also that container doesn't have "ping" or "get" and I can't get apt do install them. When running apt update I get:
Code: 0% [Connecting to deb.debian.org] [Connecting to repo.jellyfin.org]
which doesn't work, probably because of the faulty DNS.
Adding the DNS manually to the docker-compose doesn't solve it. Same as changing the resolv.conf directly inside the container.
RE: Can't identify movies when running inside docker - tmsrxzar - 2024-01-21
alright, we've moved passed jellyfin
we're now in to "how to fix network access in docker"; which i'm not able to help with, i've never had to fix this sort of thing my docker just always works
here are a couple links that may help
https://askubuntu.com/questions/1445229/no-network-access-from-within-docker-container
https://stackoverflow.com/questions/20430371/my-docker-container-has-no-internet
RE: Can't identify movies when running inside docker - roydbt - 2024-01-21
(2024-01-21, 08:42 PM)tmsrxzar Wrote: we're now in to "how to fix network access in docker"; which i'm not able to help with, i've never had to fix this sort of thing my docker just always works
Thanks anyway!
|