Unable to bind mount volume for custom aerospike.conf for Docker

I am using Ubuntu 22.04.02 with kernel 5.15.0-71-generic and Docker Docker version 23.0.5, build bc4487a

I am trying to spin up a 1 node Aerospike Community Edition container, but am unable to do so with a custom aerospike.conf

I try the following command, but the container constantly restarts and never runs successfully:

sudo docker run -d --restart=always --privileged --device ‘/dev/nvme1n1:/dev/nvme1n1’ --device ‘/dev/nvme2n1:/dev/nvme2n1’ -v ‘/opt/aerospike/etc/:/opt/aerospike/etc/’ --name aerospike -p 192.168.20.141:3000:3000 -p 3001-3003:3001-3003 aerospike/aerospike-server --config-file=/opt/aerospike/etc/aerospike.conf

My aerospike.conf file looks like this:

Aerospike database configuration file for deployments using raw storage with systemd.

service { proto-fd-max 15000 }

logging { console { context any info } }

network { service { address any port 3000 }

    heartbeat {
            mode multicast
            multicast-group 239.1.99.222
            port 3002

            # To use unicast-mesh heartbeats, remove the 3 lines above, and see
            # aerospike_mesh.conf for alternative.

            interval 150
            timeout 10
    }

    fabric {
            port 3001
    }

    info {
            port 3003
    }

}

namespace aero0 { replication-factor 2 memory-size 40G

    # Warning - legacy data in defined raw partition devices will be erased.
    # These partitions must not be mounted by the file system.
    storage-engine device {
            # Use one or more lines like those below with actual device paths.
            device /dev/nvme1n1
            device /dev/nvme2n1

            # The 2 lines below optimize for SSD.
            scheduler-mode noop
            write-block-size 128K

            # Use the line below to store data in memory in addition to devices.
            data-in-memory false
    }

}

If I remove the config file and bind mount from the docker command, then the container works, but uses the default aerospike.conf file which I don’t want. Please assist on how to properly pass the custom aerospike.conf file.

Hello all,

Closing the topic. Went through the container log files via sudo docker logs <container_name> and found the following:

CRITICAL (storage): (storage.c:105) Community Edition limit exceeded

This is working as intended by Aerospike assumedly, as if I only use one of the NVMe devices the container works properly with the bind mounts. Closing topic but leaving this answer if it helps others in the future.

Thanks for thinking about the rest of the community and posting the answer!