jlesage / docker-jdownloader-2

Docker container for JDownloader 2
MIT License
783 stars 71 forks source link

[Bug] Docker container fails to start on every second try with `Directory not empty` #200

Closed misku closed 2 months ago

misku commented 6 months ago

Current Behavior

Docker container fails to start literally on every second try with 10-openbox.sh: rm: can't remove '/config/xdg/data/themes/OpenboxTheme/gtk-2.0/assets': Directory not empty. When this error is raised container quits. When started again, it starts ok. When restarted - the same issue comes up, and so on.

Directory /config/xdg/data/themes/OpenboxTheme/gtk-2.0/assets is full of pngs:

> ls config/xdg/data/themes/OpenboxTheme/gtk-2.0/assets
arrow_down_glow_normal.png          button_active.png                      outline_glow.png
arrow_down_glow_prelight.png        button_default_glow.png                progressbar_bar.png
arrow_down_insensitive_normal.png   button_insensitive.png                 progressbar_trough_horiz.png
arrow_down_light_normal.png         button_normal.png                      progressbar_trough_vert.png
arrow_left_glow_normal.png          button_normal_prelight.png             scale_trough.png
arrow_left_glow_prelight.png        button_spin_down_normal.png            scale_trough_vert.png
arrow_left_insensitive_normal.png   button_spin_up_normal.png              separated_bar_small_glow_bottom.png
arrow_left_light_normal.png         frame_gap.png                          separator_horiz.png
arrow_right_dark_selected.png       hole_tiny.png                          separator_vert.png
arrow_right_glow_normal.png         inset_shadow_circle_tiny_in.png        shadow_angled_in_sides_glow.png
arrow_right_glow_prelight.png       inset_shadow_circle_tiny_ins_glow.png  shadow_angled_in_sides_left.png
arrow_right_insensitive_normal.png  inset_shadow_circle_tiny_ins.png       shadow_angled_in_sides_right.png
arrow_right_light_normal.png        inset_shadow_circle_tiny.png           shadow_angled_in_sides_top.png
arrow_up_glow_normal.png            inset_shadow.png                       slider_horiz_active.png
arrow_up_glow_prelight.png          inset_shadow_square_tiny_glow_in.png   slider_horiz.png
arrow_up_insensitive_normal.png     inset_shadow_square_tiny_in.png        slider_run_base_horiz.png
arrow_up_light_normal.png           inset_shadow_square_tiny.png           slider_run_base_vert.png
bevel_in.png                        inset_shadow_tiny.png                  slider_vert_active.png
bevel_out_hollow.png                items.png                              slider_vert.png
bevel_out.png                       knob_insensitive.png                   toolbar.png
bg-entry.png                        knob.png                               trough_horiz.png
bg-spin.png                         knob_prelight.png                      trough_vert.png
button_active_insensitive.png       menu.png

Expected Behavior

The containers should start properly every single time.

Log without an error

Mar 18 20:33:26 jdown docker-compose[350388]: jdown            | [cont-init   ] 10-nginx.sh: executing...
Mar 18 20:33:26 jdown docker-compose[350388]: jdown            | [cont-init   ] 10-nginx.sh: terminated successfully.
Mar 18 20:33:26 jdown docker-compose[350388]: jdown            | [cont-init   ] 10-openbox.sh: executing...
Mar 18 20:33:26 jdown docker-compose[350388]: jdown            | [cont-init   ] 10-openbox.sh: terminated successfully.

Steps To Reproduce

Start a container with docker-compose up

Environment

Container creation

Docker compose yml

version: '3'
services:
  jdownloader-2:
    container_name: jdown
    image: 'jlesage/jdownloader-2:v24.01.1'
    volumes:
      - "/media/config:/config:rw"
      - "/media/output:/output:rw"
    environment:
      - SECURE_CONNECTION=1
      - JDOWNLOADER_HEADLESS=1
      - KEEP_APP_RUNNING=1
      - DARK_MODE=1

Container log

Log with an error

Mar 18 20:21:49 jdown docker-compose[333338]: jdown            | [cont-init   ] 10-fontconfig-cache-dir.sh: executing...
Mar 18 20:21:49 jdown docker-compose[333338]: jdown            | [cont-init   ] 10-fontconfig-cache-dir.sh: terminated successfully.
Mar 18 20:21:49 jdown docker-compose[333338]: jdown            | [cont-init   ] 10-init-users.sh: executing...
Mar 18 20:21:49 jdown docker-compose[333338]: jdown            | [cont-init   ] 10-init-users.sh: terminated successfully.
Mar 18 20:21:49 jdown docker-compose[333338]: jdown            | [cont-init   ] 10-nginx.sh: executing...
Mar 18 20:21:49 jdown docker-compose[333338]: jdown            | [cont-init   ] 10-nginx.sh: terminated successfully.
Mar 18 20:21:49 jdown docker-compose[333338]: jdown            | [cont-init   ] 10-openbox.sh: executing...
Mar 18 20:21:49 jdown docker-compose[333338]: jdown            | [cont-init   ] 10-openbox.sh: rm: can't remove '/config/xdg/data/themes/OpenboxTheme/gtk-2.0/assets': Directory not empty
Mar 18 20:21:49 jdown docker-compose[333338]: jdown            | [cont-init   ] 10-openbox.sh: terminated with error 1.
Mar 18 20:21:49 jdown docker-compose[333338]: jdown exited with code 1

Container inspect

[
    {
        "Id": "a2945952c23e3c0a24410e2a79e8f8530a000aad5e3a59b71826277f2f03c143",
        "Created": "2024-03-18T19:33:25.559977408Z",
        "Path": "/init",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 350444,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2024-03-18T19:33:26.600021079Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:f7c3ba8c263bee09b433a3a00d171c5891d0c2bd9d1fe1950dcf507322bbda28",
        "ResolvConfPath": "/var/lib/docker/containers/f456dc56de7ac7871a74c03e64da1ef1d670046797a950f6e2220a4cf0017fe2/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/f456dc56de7ac7871a74c03e64da1ef1d670046797a950f6e2220a4cf0017fe2/hostname",
        "HostsPath": "/var/lib/docker/containers/f456dc56de7ac7871a74c03e64da1ef1d670046797a950f6e2220a4cf0017fe2/hosts",
        "LogPath": "/var/lib/docker/containers/a2945952c23e3c0a24410e2a79e8f8530a000aad5e3a59b71826277f2f03c143/a2945952c23e3c0a24410e2a79e8f8530a000aad5e3a59b71826277f2f03c143-json.log",
        "Name": "/jdown",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "docker-default",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/media/output:/output:rw",
                "/media/config:/config:rw"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "container:f456dc56de7ac7871a74c03e64da1ef1d670046797a950f6e2220a4cf0017fe2",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": [],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "private",
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "shareable",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "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": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": null,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "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/498dea60a74e2f77c27bbcea55cababf485b5975a05b9c9f348e6d13a4f9227d-init/diff:/var/lib/docker/overlay2/15c0fcb149068c8d268e7e6dd3aee145e6d95b8392891c66ad8d47a869fdd471/diff:/var/lib/docker/overlay2/fccb83a6539881793e27770dbc5159f0b51cfec4f89056d58cce832693fe7b3a/diff:/var/lib/docker/overlay2/287fe48d833d58f5bb9a96833c0bdebb71d4a29d58a6a4c934ed68d7f74c6278/diff:/var/lib/docker/overlay2/fd2dc6dd9ab56fb93779f195a13bd526d27d28281addae439b3359c8a9b41810/diff:/var/lib/docker/overlay2/765bc5748565dd5afe9fc25a67e5ec26302f789af6a57480e7098693ab7a3023/diff:/var/lib/docker/overlay2/b691a83867e228b917c78c050cdff6964775b56ef4244744374ea8e8192c3913/diff:/var/lib/docker/overlay2/dd0995cb0cc4932311ff71d64931f46aa205b449846f537f691311b169f3210f/diff:/var/lib/docker/overlay2/bfe004b3fd638c9661605ea3139f4e50524a9143def3d8014f2fc829ec4f93bb/diff:/var/lib/docker/overlay2/56db9161338e89a07ac98e8d7d371f297ce3e1e6c134706ed3f98a0eb7734a15/diff:/var/lib/docker/overlay2/71d6cc1b981bf99ac0b561a9ba11937d7dd8489bfa3236796db0cfb5dd058ae1/diff:/var/lib/docker/overlay2/0fffb387226a1ee9cc0e4766fcf12f03a8539a64bc76329692bd3c81ca3b0012/diff:/var/lib/docker/overlay2/19bf5b5d511575eab66d3d1bb0db321db66fdee9cd10ac04176ad6544fb040b5/diff:/var/lib/docker/overlay2/55f66a391bfcba99e05e6c7fc56fdb41460c8641c800530500cd890d2d7b1b49/diff:/var/lib/docker/overlay2/ef91c5a8e17e331d82678121087bea50838c5e69c4573c55e48c839d9fb9f301/diff:/var/lib/docker/overlay2/e188701d75b432d605e1e4fa19b2621c5f508dfd19c56d2cfe0bb78d334acdf2/diff:/var/lib/docker/overlay2/b16b1212237ba237cf25a9674585d3dfdec84392e6941b8226be7a6040e427d0/diff:/var/lib/docker/overlay2/b03e693029dd3e3d629246ee8a7a9651da0dbf409b99936330d8fe0774380fc6/diff:/var/lib/docker/overlay2/0737f6979eaba3a3372a596f6aa6401ec9aa0eb17342f67b9710230b13f788a8/diff:/var/lib/docker/overlay2/fc24aec5e1f56ca07f07a253421e1d9f763221bbd29fe2b373563239e9d4b6fd/diff:/var/lib/docker/overlay2/1b78639e5f3ec6e46b97199053be985a1f5cf1648b88e2ad806338c95db9e39d/diff:/var/lib/docker/overlay2/7312f954863d6ce4a5e7e3250b746bc741c4a154d769705e266c21856165efb9/diff:/var/lib/docker/overlay2/e3ae869450d1cf4bb145be64f18160bfa30569296022b091f74340f938b9ba83/diff:/var/lib/docker/overlay2/94cf21e09bd30950b73e5a3236bc6d82cf7169135a22ba6bdf2b826c2b333082/diff:/var/lib/docker/overlay2/7cc30bd7c3210101b46c720df75267fec50e1a29d8d15df69aa6de771fa75d7e/diff:/var/lib/docker/overlay2/f2ad20b1d19374a0beb19b1ceb8de4f72d5c312c16d896bf99a0b1845884c7d9/diff:/var/lib/docker/overlay2/e788e777b5ab418a4cf7d876fe714a67bd5f5d427cf0aa56a2d20daedd18de11/diff:/var/lib/docker/overlay2/5df40226bb9d03df59e009295ee8e833df6356cb7817afdd52b2b943e944d807/diff:/var/lib/docker/overlay2/ecb2ed17e7df551bf7a5e427a1777c344a2c92968e13421325906c83e856980e/diff:/var/lib/docker/overlay2/60f5e4e2fed0b8edf542e86b19b068e94ab65eaac7881c6314bffec3fd02a9c0/diff:/var/lib/docker/overlay2/4d918116ced41df9d085e730c7cb2561f0e071248f6a8ad877d5130dcdaa6d8d/diff:/var/lib/docker/overlay2/f837b910a4750d9d6364134a540d48a99a7cf85675cc0eb88aa1d14ed7936853/diff:/var/lib/docker/overlay2/73ece54da1b5ad08b5aadb6227a5c66eb3b08ade90ab7e738a75845efdd314b7/diff:/var/lib/docker/overlay2/420150e7a89bc37d40bab7254993a4ca2098ad0d0dd17e457f296c4ad807bcff/diff:/var/lib/docker/overlay2/b91c090d8a64945d553283604584ae3ae3a7f915390a47671f2e5fbc7fff63a0/diff:/var/lib/docker/overlay2/15719c106260f228b8f3bcd46a0ec63142f3ea2209567c4eec94c9cd80a99215/diff",
                "MergedDir": "/var/lib/docker/overlay2/498dea60a74e2f77c27bbcea55cababf485b5975a05b9c9f348e6d13a4f9227d/merged",
                "UpperDir": "/var/lib/docker/overlay2/498dea60a74e2f77c27bbcea55cababf485b5975a05b9c9f348e6d13a4f9227d/diff",
                "WorkDir": "/var/lib/docker/overlay2/498dea60a74e2f77c27bbcea55cababf485b5975a05b9c9f348e6d13a4f9227d/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/media/ouput",
                "Destination": "/output",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/media/config",
                "Destination": "/config",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "f456dc56de7a",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "3129/tcp": {},
                "5800/tcp": {},
                "5900/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "SECURE_CONNECTION=1",
                "JDOWNLOADER_HEADLESS=1",
                "KEEP_APP_RUNNING=1",
                "DARK_MODE=1",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/base/sbin:/opt/base/bin",
                "ENV=/root/.docker_rc",
                "USER_ID=1000",
                "GROUP_ID=1000",
                "SUP_GROUP_IDS=",
                "UMASK=0022",
                "LANG=en_US.UTF-8",
                "TZ=Etc/UTC",
                "APP_NICENESS=0",
                "INSTALL_PACKAGES=",
                "PACKAGES_MIRROR=",
                "CONTAINER_DEBUG=0",
                "DISPLAY_WIDTH=1920",
                "DISPLAY_HEIGHT=1080",
                "SECURE_CONNECTION_VNC_METHOD=SSL",
                "SECURE_CONNECTION_CERTS_CHECK_INTERVAL=60",
                "WEB_LISTENING_PORT=5800",
                "VNC_LISTENING_PORT=5900",
                "VNC_PASSWORD=",
                "ENABLE_CJK_FONT=0",
                "MYJDOWNLOADER_EMAIL=",
                "MYJDOWNLOADER_PASSWORD=",
                "MYJDOWNLOADER_DEVICE_NAME=",
                "JDOWNLOADER_MAX_MEM="
            ],
            "Cmd": [
                "/init"
            ],
            "Image": "jlesage/jdownloader-2:v24.01.1",
            "Volumes": {
                "/config": {},
                "/output": {}
            },
            "WorkingDir": "/tmp",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "com.docker.compose.config-hash": "e27aa0a611e7e39382672e507e119e9b03b065532cc504ffc058373d2122ddd1",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.oneoff": "False",
                "com.docker.compose.project": "jdown",
                "com.docker.compose.project.config_files": "docker-compose.yml",
                "com.docker.compose.project.working_dir": "/media/jdown",
                "com.docker.compose.service": "jdownloader-2",
                "com.docker.compose.version": "1.25.4",
                "org.label-schema.description": "Docker container for JDownloader 2",
                "org.label-schema.name": "jdownloader-2",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vcs-url": "https://github.com/jlesage/docker-jdownloader-2",
                "org.label-schema.version": "24.01.1"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {}
        }
    }
]

Anything else?

No response

jlesage commented 6 months ago

This is strange, I don't know where the png files are coming from. Since you are running with JDOWNLOADER_HEADLESS=1, openbox is even not running...

Is /media/config shared with other containers ?

jlesage commented 2 months ago

Closing this issue. Please re-open is needed.