MqDockerUp icon indicating copy to clipboard operation
MqDockerUp copied to clipboard

HTTP code 400 unexpected: Duplicate mount point

Open hanfreakingsolo opened this issue 2 years ago • 9 comments

I triggered an update for my plex container through home assistant. The image pulls fine and I see the container get renamed, but after a minute I see this error:

25.10.2023 14:26:54 [info]      Image pulled successfully
Container died: plex (4f0979a2e61aa4c572d2f54112fcf5f441724291fac4897c99c3d98f4f475773)
25.10.2023 14:27:29 [error]     MqDockerUp stopped due to an error
25.10.2023 14:27:29 [error]     object
25.10.2023 14:27:29 [error]     Error: (HTTP code 400) unexpected - Duplicate mount point: /PlexMedia 
    at /app/node_modules/docker-modem/lib/modem.js:343:17
    at getCause (/app/node_modules/docker-modem/lib/modem.js:373:7)
    at Modem.buildPayload (/app/node_modules/docker-modem/lib/modem.js:342:5)
    at IncomingMessage.<anonymous> (/app/node_modules/docker-modem/lib/modem.js:310:16)
    at IncomingMessage.emit (node:events:526:35)
    at IncomingMessage.emit (node:domain:489:12)
    at endReadableNT (node:internal/streams/readable:1359:12)
    at processTicksAndRejections (node:internal/process/task_queues:82:21)

hanfreakingsolo avatar Oct 25 '23 14:10 hanfreakingsolo

It Seems like you mounted PlexMedia twice. Creating a Volume for /PlexMedia would probably fix that issue.

Closing for now

MichelFR avatar Nov 02 '23 11:11 MichelFR

Error: (HTTP code 400) unexpected - Duplicate mount point

I have created a volume, docker compose up works without issue. Here is my compose file:

  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    network_mode: host
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
        limits:
          cpus: "0.75"
    environment:
      - PUID=568
      - PGID=568
      - TZ=America/Toronto
      - VERSION=docker
      - PLEX_CLAIM="redacted"
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=compute,video,utility      
    volumes:
      - ./plex/config:/config
      - ./plex/transcode:/transcode
      - PlexMedia:/PlexMedia
    restart: unless-stopped
volumes:
  downloads:
    driver_opts:
      type: "nfs"
      o: "addr=192.168.0.11,nfsvers=4"
      device: ":/mnt/truenasZ2/downloads/qbittorent"
  PlexMedia:
    driver_opts:
      type: "nfs"
      o: "addr=192.168.0.11,nfsvers=4"
      device: ":/mnt/truenasZ2/PlexMedia"

hanfreakingsolo avatar Nov 02 '23 11:11 hanfreakingsolo

Thanks for sharing your solution!

MichelFR avatar Nov 02 '23 12:11 MichelFR

Thanks for sharing your solution!

Sorry Michel maybe a misunderstanding. The above is my original compose file, this is what isn't working. I still get the duplicate mount point even with this configuration. Thanks in advance

hanfreakingsolo avatar Nov 02 '23 13:11 hanfreakingsolo

could you please try ./PlexMedia:/PlexMedia

instead

PlexMedia:/PlexMedia

MichelFR avatar Nov 02 '23 13:11 MichelFR

could you please try ./PlexMedia:/PlexMedia

instead

PlexMedia:/PlexMedia

Tried this, but unfortunately it is not a solution as this uses PlexMedia as a local bind mount rather than an NFS share volume. I've had too many headaches mounting my media to the host itself, so mounting in docker via a volume is the only solution. I don't quite understand how watchtower was able to update with this configuration but mqdockerup does not? I much prefer your app to watchtower! Thanks

hanfreakingsolo avatar Nov 02 '23 14:11 hanfreakingsolo

Hmm could you please provide me the output of: docker inspect plex

I might not be handling volumes correctly.

In the next release I’m gonna add some more debug messages so we could analyze this. I’m also gonna try to fix it.

MichelFR avatar Nov 02 '23 23:11 MichelFR

[
    {
        "Id": "da028f67e391ba1e7748ec707cdc4560f84f9a083d3e4d3124a170cf9199b57e",
        "Created": "2023-11-02T14:33:26.393347779Z",
        "Path": "/init",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 2908487,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2023-11-02T14:33:30.984837246Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:31f912e2a484e3b0f5884ffab4cb4029fc7fcdfaca6afb2496cb26ded9bb759f",
        "ResolvConfPath": "/var/lib/docker/containers/da028f67e391ba1e7748ec707cdc4560f84f9a083d3e4d3124a170cf9199b57e/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/da028f67e391ba1e7748ec707cdc4560f84f9a083d3e4d3124a170cf9199b57e/hostname",
        "HostsPath": "/var/lib/docker/containers/da028f67e391ba1e7748ec707cdc4560f84f9a083d3e4d3124a170cf9199b57e/hosts",
        "LogPath": "/var/lib/docker/containers/da028f67e391ba1e7748ec707cdc4560f84f9a083d3e4d3124a170cf9199b57e/da028f67e391ba1e7748ec707cdc4560f84f9a083d3e4d3124a170cf9199b57e-json.log",
        "Name": "/plex",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "docker-default",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/opt/mediaApps/plex/config:/config:rw",
                "/opt/mediaApps/plex/transcode:/transcode:rw"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "host",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "unless-stopped",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "ConsoleSize": [
                0,
                0
            ],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "private",
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": [],
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 750000000,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": null,
            "DeviceCgroupRules": null,
            "DeviceRequests": [
                {
                    "Driver": "nvidia",
                    "Count": 1,
                    "DeviceIDs": null,
                    "Capabilities": [
                        [
                            "gpu"
                        ]
                    ],
                    "Options": null
                }
            ],
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": null,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "Mounts": [
                {
                    "Type": "volume",
                    "Source": "mediaapps_PlexMedia",
                    "Target": "/PlexMedia",
                    "VolumeOptions": {}
                }
            ],
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/61cc89717e51e5eeb9b68d6e41bb25c32433acf672732bb8e17e7b442b463ca4-init/diff:/var/lib/docker/overlay2/f17a32765f6ab13bb7a5ceea072df91cbae22da7b4226e857277b96463630e56/diff:/var/lib/docker/overlay2/8c3165c5545ac1c9d42ae8381c816ae69f723bc95f1f25f2b8f90e41588b290e/diff:/var/lib/docker/overlay2/e227052077093f8cd21a629cc6effd8cdb53139ca96517936b27a90af439d9e7/diff:/var/lib/docker/overlay2/4b5207c68c16b18cb9ef5075a549aa773761b25bf83c5cf2355106bababd72c3/diff:/var/lib/docker/overlay2/3e948fa00bceeb4ac6244d58d32317e34e13f7fd10ba86fa4b1a40fbba00b9d3/diff:/var/lib/docker/overlay2/002d7df986f0b5d3261ed80fe43a59225521535a29790e9599877650e00eee85/diff:/var/lib/docker/overlay2/4d1320ad711cd67db3069d098551d39cfd25df2c8c50fefe4f730e53f2df017a/diff:/var/lib/docker/overlay2/b9fbb26567caa67a92477ff60c15b93cdaf61c4b366d9fc6566d3b2ec369fe38/diff:/var/lib/docker/overlay2/93b5a5ae15a2ee996d2d867c32b224a2e96b9697ad88594ab1806e1585bf473a/diff",
                "MergedDir": "/var/lib/docker/overlay2/61cc89717e51e5eeb9b68d6e41bb25c32433acf672732bb8e17e7b442b463ca4/merged",
                "UpperDir": "/var/lib/docker/overlay2/61cc89717e51e5eeb9b68d6e41bb25c32433acf672732bb8e17e7b442b463ca4/diff",
                "WorkDir": "/var/lib/docker/overlay2/61cc89717e51e5eeb9b68d6e41bb25c32433acf672732bb8e17e7b442b463ca4/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/opt/mediaApps/plex/transcode",
                "Destination": "/transcode",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "volume",
                "Name": "mediaapps_PlexMedia",
                "Source": "/var/lib/docker/volumes/mediaapps_PlexMedia/_data",
                "Destination": "/PlexMedia",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "bind",
                "Source": "/opt/mediaApps/plex/config",
                "Destination": "/config",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "ubuntuserver",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": true,
            "AttachStderr": true,
            "ExposedPorts": {
                "1900/udp": {},
                "32400/tcp": {},
                "32410/udp": {},
                "32412/udp": {},
                "32413/udp": {},
                "32414/udp": {},
                "32469/tcp": {},
                "5353/udp": {},
                "8324/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PLEX_CLAIM=\"my-claim\"",
                "NVIDIA_VISIBLE_DEVICES=all",
                "NVIDIA_DRIVER_CAPABILITIES=compute,video,utility",
                "PUID=568",
                "PGID=568",
                "TZ=America/Toronto",
                "VERSION=docker",
                "PATH=/lsiopy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "HOME=/root",
                "LANGUAGE=en_US.UTF-8",
                "LANG=en_US.UTF-8",
                "TERM=xterm",
                "S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0",
                "S6_VERBOSITY=1",
                "S6_STAGE2_HOOK=/docker-mods",
                "VIRTUAL_ENV=/lsiopy",
                "LSIO_FIRST_PARTY=true",
                "DEBIAN_FRONTEND=noninteractive",
                "PLEX_DOWNLOAD=https://downloads.plex.tv/plex-media-server-new",
                "PLEX_ARCH=amd64",
                "PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR=/config/Library/Application Support",
                "PLEX_MEDIA_SERVER_HOME=/usr/lib/plexmediaserver",
                "PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS=6",
                "PLEX_MEDIA_SERVER_USER=abc",
                "PLEX_MEDIA_SERVER_INFO_VENDOR=Docker",
                "PLEX_MEDIA_SERVER_INFO_DEVICE=Docker Container (LinuxServer.io)"
            ],
            "Cmd": null,
            "Image": "lscr.io/linuxserver/plex:latest",
            "Volumes": {
                "/config": {}
            },
            "WorkingDir": "/",
            "Entrypoint": [
                "/init"
            ],
            "OnBuild": null,
            "Labels": {
                "build_version": "Linuxserver.io version:- 1.32.7.7621-871adbd44-ls192 Build-date:- 2023-10-30T20:26:57+00:00",
                "com.centurylinklabs.watchtower.enable": "true",
                "com.docker.compose.config-hash": "c0c09a4ee39127abe422cdee496d7ca1a2c7eca84370e7c4a8ed5a62a664d517",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.depends_on": "",
                "com.docker.compose.image": "sha256:31f912e2a484e3b0f5884ffab4cb4029fc7fcdfaca6afb2496cb26ded9bb759f",
                "com.docker.compose.oneoff": "False",
                "com.docker.compose.project": "mediaapps",
                "com.docker.compose.project.config_files": "/opt/mediaApps/docker-compose.yaml",
                "com.docker.compose.project.working_dir": "/opt/mediaApps",
                "com.docker.compose.replace": "1b8437e90de2ee862a01f927eabf16617c0a31984cf80ab72daf6c3fa742163a",
                "com.docker.compose.service": "plex",
                "com.docker.compose.version": "2.21.0",
                "maintainer": "thelamer",
                "org.opencontainers.image.authors": "linuxserver.io",
                "org.opencontainers.image.created": "2023-10-30T20:26:57+00:00",
                "org.opencontainers.image.description": "[Plex](https://plex.tv) organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. Straightforward design and bulk actions mean getting things done faster.",
                "org.opencontainers.image.documentation": "https://docs.linuxserver.io/images/docker-plex",
                "org.opencontainers.image.licenses": "GPL-3.0-only",
                "org.opencontainers.image.ref.name": "02f8e58e475ca5951e65cd2513146876a885dcc9",
                "org.opencontainers.image.revision": "02f8e58e475ca5951e65cd2513146876a885dcc9",
                "org.opencontainers.image.source": "https://github.com/linuxserver/docker-plex",
                "org.opencontainers.image.title": "Plex",
                "org.opencontainers.image.url": "https://github.com/linuxserver/docker-plex/packages",
                "org.opencontainers.image.vendor": "linuxserver.io",
                "org.opencontainers.image.version": "1.32.7.7621-871adbd44-ls192"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "c68eb6b07758072f25696d3eb97b5a0e59c74c076ac1c9864694eeeb446b8033",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/default",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "host": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "0a0d8c9f1250d4f1b70dacf0ad2a8f3fe3b7c29a491d4f06e6596a6c2200d824",
                    "EndpointID": "f5fd469678f7ee837e1e28260e21193a4c308ab177ef557bf338e742ecde0a31",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        }
    }
]

hanfreakingsolo avatar Nov 03 '23 00:11 hanfreakingsolo

Had the same issue here with the following docker command to startup the initial container:

docker run -it -p 8091:8091 -p 3000:3000 --name zwavejsui --device=/dev/ttyUSB-zwave:/dev/zwave --mount type=bind,source=/volume1/homes/username/docker/zwave2jsui/_data,target=/usr/src/app/store zwavejs/zwave-js-ui:latest

Modified the code so it looks like this (--mount changed to -v) and updating works flawlessly:

docker run -p 8091:8091 -p 3000:3000 --name zwavejsui --device=/dev/ttyUSB-zwave:/dev/zwave -v /volume1/homes/username/docker/zwave2jsui/_data:/usr/src/app/store zwavejs/zwave-js-ui:latest

Hope it helps with debugging

pvh0 avatar Jan 30 '24 13:01 pvh0

Hey, Any updates on this? I have the same issues with some of my containers

lodesmets avatar Jan 16 '25 13:01 lodesmets