MAC Docker error invalid mount config for type "bind": invalid mount path

I have completed all of the setup yet running the following script I get the following error on Mac.

docker run --rm -e SETUP=“true”
–user $(id -u):$(id -g)
–mount type=bind,source=“/Users/efraimsilver/Library/Application Support/Storj/identity/storagenode”,destination=/app/identity
–mount type=bind,source=“/Volumes/StorjStorage/storagenode“,destination=/app/config
–name storagenode storjlabs/storagenode:latest

docker: Error response from daemon: invalid mount config for type “bind”: invalid mount path: ‘“/Volumes/StorjStorage/storagenode“’ mount path must be absolute.

See ‘docker run --help’.

I know it’s something probably silly but am not able to work out what it is. Any help would be really appreciated.

Cheers
Eff

I’m not sure whether it’s the forum glitch, but it looks like you have non-standard quotes there.

you seem to have:
  “/Volumes/StorjStorage/storagenode“
however it should be:
  "/Volumes/StorjStorage/storagenode"

This happens if you copy-paste code from some software that automatically replaces them. e.g. word processing tools, some forums.

1 Like

I was so sure that I had the right quotes but looks like I didn’t. Thank you I’ll give it a try. Thank you it worked.

Legend.

1 Like

A very quick question. I seem to have made a mistake with my typing of the ADDRESS and need to fix this. Do I stop the docker container and just rerun the script?
Stupid me didn’t;t look to carefully and added an extra letter in the domain name.

Cheers

Stop, remove and rerun the script

Thank you sorry what is the script for remove?

Thank you

docker rm storagenode

Thank you. Very much appreciated.

But please never run the SETUP step again for the same identity, you may destroy your node otherwise. This step must be performed only once for the entire node’s life.

Thanks @Alexey I will not do that. I am having another issue now. My node was running perfectly for over 36 hours and the machine turned off now it will not start. How can I determine what the issue is as docker logs is just full of information and im not sure what is wrong.

Cheers

You need to check for the last 10 lines from the log when the node is stopped. Or you may search for FATAL errors:

docker logs storagenode 2>&1 | grep -i fatal | tail

Sorry for the long post below.

2023-10-21 08:39:32,546 INFO stopped: storagenode (exit status 1)
2023-10-21 18:39:32 2023-10-21 08:39:32,547 INFO stopped: processes-exit-eventlistener (terminated by SIGTERM)
2023-10-21 18:39:33 2023-10-21 08:39:33,283 INFO RPC interface ‘supervisor’ initialized
2023-10-21 18:39:33 2023-10-21 08:39:33,283 INFO supervisord started with pid 1
2023-10-21 18:39:34 2023-10-21 08:39:34,285 INFO spawned: ‘processes-exit-eventlistener’ with pid 12
2023-10-21 18:39:34 2023-10-21 08:39:34,287 INFO spawned: ‘storagenode’ with pid 13
2023-10-21 18:39:34 2023-10-21 08:39:34,288 INFO spawned: ‘storagenode-updater’ with pid 14
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Configuration loaded {“Process”: “storagenode-updater”, “Location”: “/app/config/config.yaml”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Invalid configuration file key {“Process”: “storagenode-updater”, “Key”: “console.address”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Invalid configuration file key {“Process”: “storagenode-updater”, “Key”: “operator.wallet”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Invalid configuration file key {“Process”: “storagenode-updater”, “Key”: “operator.email”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Invalid configuration file key {“Process”: “storagenode-updater”, “Key”: “storage.allocated-bandwidth”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Invalid configuration file key {“Process”: “storagenode-updater”, “Key”: “contact.external-address”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Invalid configuration file key {“Process”: “storagenode-updater”, “Key”: “server.private-address”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Invalid configuration file key {“Process”: “storagenode-updater”, “Key”: “operator.wallet-features”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Invalid configuration file key {“Process”: “storagenode-updater”, “Key”: “healthcheck.details”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Invalid configuration file key {“Process”: “storagenode-updater”, “Key”: “healthcheck.enabled”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Invalid configuration file key {“Process”: “storagenode-updater”, “Key”: “storage.allocated-disk-space”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Invalid configuration file key {“Process”: “storagenode-updater”, “Key”: “server.address”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Anonymized tracing enabled {“Process”: “storagenode-updater”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Running on version {“Process”: “storagenode-updater”, “Service”: “storagenode-updater”, “Version”: “v1.89.5”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Downloading versions. {“Process”: “storagenode-updater”, “Server Address”: “https://version.storj.io”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Configuration loaded {“process”: “storagenode”, “Location”: “/app/config/config.yaml”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Anonymized tracing enabled {“process”: “storagenode”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Operator email {“process”: “storagenode”, “Address”: “efraim@cryptotraders.digital”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Operator wallet {“process”: “storagenode”, “Address”: “0xdE5129E1bF2f971769eB66C9e1a70D04F88D444B”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO server kernel support for server-side tcp fast open remains disabled. {“process”: “storagenode”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO server enable with: sysctl -w net.ipv4.tcp_fastopen=3 {“process”: “storagenode”}
2023-10-21 18:39:34 2023-10-21 08:39:34,502 WARN received SIGTERM indicating exit request
2023-10-21 18:39:34 2023-10-21 08:39:34,503 INFO waiting for storagenode, processes-exit-eventlistener, storagenode-updater to die
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Got a signal from the OS: “terminated” {“Process”: “storagenode-updater”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z ERROR Error retrieving version info. {“Process”: “storagenode-updater”, “error”: “version checker client: Get "https://version.storj.io": context canceled”, “errorVerbose”: “version checker client: Get "https://version.storj.io": context canceled\n\tstorj.io/storj/private/version/checker.(*Client).All:68\n\tmain.loopFunc:21\n\tstorj.io/common/sync2.(*Cycle).Run:99\n\tmain.cmdRun:136\n\tstorj.io/private/process.cleanup.func1.4:402\n\tstorj.io/private/process.cleanup.func1:420\n\tgithub.com/spf13/cobra.(*Command).execute:852\n\tgithub.com/spf13/cobra.(*Command).ExecuteC:960\n\tgithub.com/spf13/cobra.(*Command).Execute:897\n\tstorj.io/private/process.ExecWithCustomOptions:113\n\tstorj.io/private/process.ExecWithCustomConfigAndLogger:78\n\tmain.main:20\n\truntime.main:250”}
2023-10-21 18:39:34 2023-10-21 08:39:34,505 INFO stopped: storagenode-updater (exit status 0)
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Got a signal from the OS: “terminated” {“process”: “storagenode”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Telemetry enabled {“process”: “storagenode”, “instance ID”: “1EHwgt8wfW7E3RQKXZEnaR6EuXfWr6bJFX5Yqdwd5pgVApCq74”}
2023-10-21 18:39:34 2023-10-21T08:39:34Z INFO Event collection enabled {“process”: “storagenode”, “instance ID”: “1EHwgt8wfW7E3RQKXZEnaR6EuXfWr6bJFX5Yqdwd5pgVApCq74”}
2023-10-21 18:39:34 Error: Error creating tables for master database on storagenode: migrate: database: info opening file “config/storage/info.db” failed: context canceled
2023-10-21 18:39:34 storj.io/storj/storagenode/storagenodedb.(*DB).openDatabase:347
2023-10-21 18:39:34 storj.io/storj/storagenode/storagenodedb.(*DB).Migration.func1:657
2023-10-21 18:39:34 storj.io/storj/private/migrate.(*Migration).Run:164
2023-10-21 18:39:34 storj.io/storj/storagenode/storagenodedb.(*DB).MigrateToLatest:370
2023-10-21 18:39:34 main.cmdRun:95
2023-10-21 18:39:34 main.newRunCmd.func1:32
2023-10-21 18:39:34 storj.io/private/process.cleanup.func1.4:402
2023-10-21 18:39:34 storj.io/private/process.cleanup.func1:420
2023-10-21 18:39:34 github.com/spf13/cobra.(*Command).execute:852
2023-10-21 18:39:34 github.com/spf13/cobra.(*Command).ExecuteC:960
2023-10-21 18:39:34 github.com/spf13/cobra.(*Command).Execute:897
2023-10-21 18:39:34 storj.io/private/process.ExecWithCustomOptions:113
2023-10-21 18:39:34 main.main:30
2023-10-21 18:39:34 runtime.main:250
2023-10-21 18:39:34 2023-10-21 08:39:34,607 INFO stopped: storagenode (exit status 1)
2023-10-21 18:39:34 2023-10-21 08:39:34,608 INFO stopped: processes-exit-eventlistener (terminated by SIGTERM)

docker logs storagenode 2>&1 | grep -i fatal | tail

fatal error: unexpected signal during runtime execution

fatal error: unexpected signal during runtime execution

fatal error: unexpected signal during runtime execution

fatal error: unexpected signal during runtime execution

fatal error: unexpected signal during runtime execution

fatal error: unexpected signal during runtime execution

fatal error: unexpected signal during runtime execution

fatal error: unexpected signal during runtime execution

fatal error: unexpected signal during runtime execution

fatal error: unexpected signal during runtime execution

This one suggests that your drive has not be mounted to the same location as before. You need to fix that.

It’s also possible, that your drive is too slow to respond (is it a SMR?).

@Alexey I can see that the drive mounts to a different disk every time it starts up. I’ve searched to find out how to force mount to the same disk I know how to do it on a RPI but can’t seem to work out on my Mac. Would have thought it was somewhat similar.

Are you able to advise please.
Thank you

Exactly the same. macOS has /etc/fstab too.

@Alexey Thank you for that. Just one more question. In regards to where the drive was originally mounted to which location how do I find that?
Thank you again

I do not know for sure (I do not have mac), but you always can use the sudo lsblk command to see all block devices available.
Perhaps it can be showed with sudo cat /etc/mtab

Thanks @Alexey for all your help but im still unable to progress any further. I am running MacOS 14.1 Sonoma and after much research I am unable to edit /etc/fstab nor find out what disk the external drive was mapped to when I set it up. Maybe there is someone else that has a Mac that maybe able to help shed some light on this. Just wondering if there is a way to edit something in Storj to point to the new drive location (I have no idea just thinking out loud) but still does not help me with the issue if the Mac does restart that the external drive might change. Anyway thank you again for your help so far.
Cheers

You may use this article

Yes, you need to update a --mount option in your docker run command. You need to stop and remove the container, then run it back using all your parameters include changed ones.
To stop and remove the container:

docker stop -t 300 storagenode
docker rm storagenode

Then use your full docker run command with changed location in the --mount option(s).

HI @Alexey Again thanks for all your help. In the end I gave up as I was not able to get it to work. I have last night setup a RPI and have nearly completed the setup following the official documentation Step 5. Create an Identity - Storj Docs. I am using the original identity and all story data from my USB drive which I will copy to the correct location which I need to create the
following /home/pi/.local/share/storj/identity/storagenode
I’ve search everywhere yet can’t get it right. Would you know how to create the correct folder structure and copy the files across.
Many thanks