Jellyfin Forum
SOLVED: Can't identify movies when running inside docker - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+---- Forum: Media Scanning & Identification (https://forum.jellyfin.org/f-media-scanning-identification)
+---- Thread: SOLVED: Can't identify movies when running inside docker (/t-solved-can-t-identify-movies-when-running-inside-docker)



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!