Whiteboard Fails to Start in Individual Docker Instance

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • 30.0.6
  • Operating system and version (e.g., Ubuntu 24.04):
    • Docker under Ubuntu 24.04
  • Web server and version (e.g, Apache 2.4.25):
    • aio-apache
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    NA
  • PHP version (e.g, 8.3):
    NA
  • Is this the first time you’ve seen this error? (Yes / No):
    • yes
  • When did this problem seem to first start?
    • after upgrade
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • AIO (separate containers)
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • No

Summary of the issue you are facing:

After upgrading to the latest version of whiteboard, the container fails to startup properly and crashes at startup immediately. I am in a startup loop now with the following error:

Connection to nextcloud-aio-redis (172.22.0.5) 6379 port [tcp/redis] succeeded!

> whiteboard@1.0.5 server:start
> node websocket_server/main.js

Setting up Redis Streams adapter
Redis Streams adapter set up successfully
Listening on port: 3002
Server started successfully on port 3002
Failed to initialize BackupManager: Error: ENOENT: no such file or directory, mkdir './backup'
    at async Object.mkdir (node:internal/fs/promises:858:10)
    at async BackupManager.init (file:///app/websocket_server/BackupManager.js:47:4) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'mkdir',
  path: './backup'
}
node:internal/process/promises:394
    triggerUncaughtException(err, true /* fromPromise */);
    ^

Hi, can you post the output of sudo docker info here?

Sure, thank you for helping!

$ sudo docker info
[sudo] password for jonathan:
Client: Docker Engine - Community
 Version:    27.4.1
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.19.3
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.32.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 42
  Running: 40
  Paused: 0
  Stopped: 2
 Images: 162
 Server Version: 27.4.1
 Storage Driver: overlay2
  Backing Filesystem: zfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: true
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 88bf19b2105c8b17560993bee28a01ddc2f97182
 runc version: v1.2.2-0-g7cb3632
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.8.12-4-pve
 Operating System: Ubuntu 24.04.1 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 12.01GiB
 Name: dhp
 ID: 42321795-1922-49da-8b27-991e4d237020
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Username: jonmchan
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Hm… can you upgrade docker to a recent version like v27.1.0? Probably you need to switch to the official installation to do so: Install | Docker Docs

My docker version is very recent - 27.4.1 released in 2024-12-18? It is newer than the version you suggested at v27.1.0?

Ah sorry, I misread…

Can you post the output of sudo docker inspect nextcloud-aio-whiteboard here? (please hide all secrets)

[
    {
        "Id": "d116721c8c75c5ad2f5bd9dec3e1759cd50081d3907f433bb3ccbb0b43d9c3db",
        "Created": "2025-02-05T06:04:04.793993815Z",
        "Path": "/start.sh",
        "Args": [],
        "State": {
            "Status": "restarting",
            "Running": true,
            "Paused": false,
            "Restarting": true,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
            "ExitCode": 1,
            "Error": "",
            "StartedAt": "2025-02-18T22:24:52.448961495Z",
            "FinishedAt": "2025-02-18T22:24:55.776473014Z",
            "Health": {
                "Status": "unhealthy",
                "FailingStreak": 0,
                "Log": [
                    {
                        "Start": "2025-02-12T00:04:27.293668839-06:00",
                        "End": "2025-02-12T00:04:28.40569923-06:00",
                        "ExitCode": 1,
                        "Output": "Connection to nextcloud-aio-redis (172.22.0.12) 6379 port [tcp/redis] succeeded!\n"
                    },
                    {
                        "Start": "2025-02-14T00:01:48.072770943-06:00",
                        "End": "2025-02-14T00:01:48.970391708-06:00",
                        "ExitCode": 0,
                        "Output": "nc: getaddrinfo for host \"nextcloud-aio-redis\" port 6379: Name does not resolve\n"
                    },
                    {
                        "Start": "2025-02-14T00:02:18.971393821-06:00",
                        "End": "2025-02-14T00:02:19.036321994-06:00",
                        "ExitCode": 0,
                        "Output": "nc: getaddrinfo for host \"nextcloud-aio-redis\" port 6379: Name does not resolve\n"
                    },
                    {
                        "Start": "2025-02-14T00:02:49.037482655-06:00",
                        "End": "2025-02-14T00:02:49.099045446-06:00",
                        "ExitCode": 0,
                        "Output": "nc: getaddrinfo for host \"nextcloud-aio-redis\" port 6379: Name does not resolve\n"
                    },
                    {
                        "Start": "2025-02-15T00:01:08.319657628-06:00",
                        "End": "2025-02-15T00:01:08.37170576-06:00",
                        "ExitCode": 0,
                        "Output": "nc: getaddrinfo for host \"nextcloud-aio-redis\" port 6379: Name does not resolve\n"
                    }
                ]
            }
        },
        "Image": "sha256:1d82aca6d90a8cdea7e25659d2fc9e3928024dd671d2ab7df1c5df06f8321f5b",
        "ResolvConfPath": "/var/lib/docker/containers/d116721c8c75c5ad2f5bd9dec3e1759cd50081d3907f433bb3ccbb0b43d9c3db/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/d116721c8c75c5ad2f5bd9dec3e1759cd50081d3907f433bb3ccbb0b43d9c3db/hostname",
        "HostsPath": "/var/lib/docker/containers/d116721c8c75c5ad2f5bd9dec3e1759cd50081d3907f433bb3ccbb0b43d9c3db/hosts",
        "LogPath": "/var/lib/docker/containers/d116721c8c75c5ad2f5bd9dec3e1759cd50081d3907f433bb3ccbb0b43d9c3db/d116721c8c75c5ad2f5bd9dec3e1759cd50081d3907f433bb3ccbb0b43d9c3db-json.log",
        "Name": "/nextcloud-nextcloud-aio-whiteboard-1",
        "RestartCount": 19489,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "docker-default",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "nextcloud_default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "unless-stopped",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "ConsoleSize": [
                0,
                0
            ],
            "CapAdd": null,
            "CapDrop": [
                "NET_RAW"
            ],
            "CgroupnsMode": "private",
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": [],
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": true,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "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,
            "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",
                "/sys/devices/virtual/powercap"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ],
            "Init": true
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/989c93452cc5af9de27b49cfbfa01272fea2ffe164b9935efb1f33725ec6b3ac-init/diff:/var/lib/docker/overlay2/345b95e3842168a993debd591ccef136ce23cf583200b89be96ae4d32c37ddda/diff:/var/lib/docker/overlay2/8d8d2a1d8d71efb81d997e236bbd6a472b015b38bf1071985a03ca710cf79e34/diff:/var/lib/docker/overlay2/c8cea5b4af458a79e81cdf12385bbff6a209063b39733d0bd82c5e6073960062/diff:/var/lib/docker/overlay2/5ef5d06d269ce66bf7176aecde5384e5c25678cd463464eac01a21b6df66af7e/diff:/var/lib/docker/overlay2/f1a195ecd076624ac8c8891630213c715cb010cb5405b3dd386c5974c4cfdabb/diff:/var/lib/docker/overlay2/0cc9c888f1206190337e1c58470d4a3fc8f4aa31640b2ecd45b47f6981b94b34/diff:/var/lib/docker/overlay2/45eabd7a1a971a593526a255233eb124b5cca62a317abb7eee4661345829990c/diff:/var/lib/docker/overlay2/decc4204e0023f415a499401f66ffed1aeaa6a07f2a0939bdc4bda75dfcf4ca8/diff:/var/lib/docker/overlay2/5edbbc7015518ea2174286ac5838e4c49bef7b01e4f4e75cef175976d10f9651/diff:/var/lib/docker/overlay2/bacced82d859d4ebc88d73ec2ad212bbc21aac242c82f390c453652213304de4/diff:/var/lib/docker/overlay2/33001b5214de1b4a8fbdbc75c74d57fd93eb656cdda0c48be86b21d4c178ddcd/diff",
                "MergedDir": "/var/lib/docker/overlay2/989c93452cc5af9de27b49cfbfa01272fea2ffe164b9935efb1f33725ec6b3ac/merged",
                "UpperDir": "/var/lib/docker/overlay2/989c93452cc5af9de27b49cfbfa01272fea2ffe164b9935efb1f33725ec6b3ac/diff",
                "WorkDir": "/var/lib/docker/overlay2/989c93452cc5af9de27b49cfbfa01272fea2ffe164b9935efb1f33725ec6b3ac/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "d116721c8c75",
            "Domainname": "",
            "User": "65534",
            "AttachStdin": false,
            "AttachStdout": true,
            "AttachStderr": true,
            "ExposedPorts": {
                "3002": {},
                "3002/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "JWT_SECRET_KEY=SECRET",
                "STORAGE_STRATEGY=redis",
                "REDIS_HOST=nextcloud-aio-redis",
                "REDIS_HOST_PASSWORD=XX",
                "TZ=America/Chicago",
                "NEXTCLOUD_URL=https://cloud.mydomain.tld",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NODE_VERSION=23.6.0",
                "YARN_VERSION=1.22.22"
            ],
            "Cmd": null,
            "Healthcheck": {
                "Test": [
                    "CMD-SHELL",
                    "/healthcheck.sh"
                ],
                "Interval": 30000000000,
                "Timeout": 30000000000,
                "StartInterval": 5000000000,
                "Retries": 3
            },
            "Image": "nextcloud/aio-whiteboard:latest",
            "Volumes": null,
            "WorkingDir": "/tmp",
            "Entrypoint": [
                "/start.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "com.centurylinklabs.watchtower.enable": "false",
                "com.docker.compose.config-hash": "b421289bc4b6b5b9ccf9afea2f220201f6244f4e065515ae3b7aeebcf5035dfe",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.depends_on": "",
                "com.docker.compose.image": "sha256:1d82aca6d90a8cdea7e25659d2fc9e3928024dd671d2ab7df1c5df06f8321f5b",
                "com.docker.compose.oneoff": "False",
                "com.docker.compose.project": "nextcloud",
                "com.docker.compose.project.config_files": "/home/jonathan/docker/nextcloud/docker-compose.yml",
                "com.docker.compose.project.working_dir": "/home/jonathan/docker/nextcloud",
                "com.docker.compose.replace": "f87a5168deb3d3ce0b92fcd3c1392b9c8f2aed418094c3377095bfc6271d312e",
                "com.docker.compose.service": "nextcloud-aio-whiteboard",
                "com.docker.compose.version": "2.32.0"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "",
            "SandboxKey": "",
            "Ports": {},
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "nextcloud_default": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "nextcloud-nextcloud-aio-whiteboard-1",
                        "nextcloud-aio-whiteboard"
                    ],
                    "MacAddress": "",
                    "DriverOpts": null,
                    "NetworkID": "393dcf30da055a105fb90810ede25541da18a45a14d442059f76523712bf4300",
                    "EndpointID": "",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "DNSNames": [
                        "nextcloud-nextcloud-aio-whiteboard-1",
                        "nextcloud-aio-whiteboard",
                        "d116721c8c75"
                    ]
                }
            }
        }
    }
]

Hm… It looks like the tmpfs is missing for the container. Which version number do you see in the aio interface?

I am not using the aio interface. I unfortunately cannot because I already have a bunch of containers using nginx-proxy and it doesn’t play well with the standard AIO setup.

I am using the manual-install yml, but you’re absolutely right. I forgot to define tmpfs and the - BACKUP_DIR=/tmp. After I set that, it worked!

Thank you for solving my issue and pointing me in the right direction!

1 Like

I see. Please read upon how to update the manual-install properly: all-in-one/manual-install at main · nextcloud/all-in-one · GitHub

1 Like

This topic was automatically closed 8 days after the last reply. New replies are no longer allowed.