{ pkgs, ... }: let entrypoint = pkgs.writeTextFile { name = "entrypoint"; executable = true; destination = "/bin/entrypoint"; text = builtins.readFile ./entrypoint.sh; }; in pkgs.dockerTools.buildImage { name = "plex"; fromImage = pkgs.docker-image-base; copyToRoot = pkgs.buildEnv { name = "root"; paths = with pkgs; [ entrypoint util-linux plex xmlstarlet curl jq sqlite ]; pathsToLink = [ "/bin" "/lib" "/var" "/usr" ]; }; config = { Entrypoint = [ "entrypoint" ]; ExposedPorts = { "32400/tcp" = { }; }; WorkingDir = "/var/lib/plex"; Volumes = { "/var/lib/plex" = { }; }; Env = [ "LD_LIBRARY_PATH=/run/opengl-driver/lib" "PLEX_DATADIR=/var/lib/plex" ]; }; }