couchbase/docker

7.1.0+ Images Don't Work On Apple Silicon M2

deminy opened this issue · 2 comments

deminy commented

Hi there.It was announced that Couchbase 7.1.0+ supports ARM Linux, and I have seen 7.1.* and 7.2.0 Docker images published with support for ARM64. However, it seems that the ARM64 images don't work on Apple M2.

I have tested both the enterprise images and community images with the following script:

docker pull couchbase:enterprise-7.2.0
docker inspect couchbase:enterprise-7.2.0 | jq .[0].Architecture
docker run --rm -d --name=couchbase -t couchbase:enterprise-7.2.0
docker logs couchbase
docker stop couchbase

docker pull couchbase:community-7.2.0
docker inspect couchbase:community-7.2.0 | jq .[0].Architecture
docker run --rm -d --name=couchbase -t couchbase:community-7.2.0
docker logs couchbase
docker stop couchbase

On AMD64 Linux machines, the commands work fine with the following output from Docker:

Starting Couchbase Server -- Web UI available at http://<ip>:8091
and logs available in /opt/couchbase/var/lib/couchbase/logs

The maximum number of open files for the couchbase user is set too low (1024).
It must be at least 200000.

...

However, on Apple M2, the entrypoint script enters into an infinite loop with crashes happening all the time:

Starting Couchbase Server -- Web UI available at http://<ip>:8091
and logs available in /opt/couchbase/var/lib/couchbase/logs
{"init terminating in do_boot",{{badmatch,{error,{bad_return,{{ns_babysitter,start,[normal,[]]},{'EXIT',{{badmatch,{error,enospc}},[{ns_babysitter,do_write_file,3,[{file,"src/ns_babysitter.erl"},{line,94}]},{ns_babysitter,start,2,[{file,"src/ns_babysitter.erl"},{line,63}]},{application_master,start_it_old,4,[{file,"application_master.erl"},{line,293}]}]}}}}}},[{ns_babysitter_bootstrap,start,0,[{file,"src/ns_babysitter_bootstrap.erl"},{line,23}]},{init,start_em,1,[]},{init,do_boot,3,[]}]}}
init terminating in do_boot ({{badmatch,{error,{bad_return,{_}}}},[{ns_babysitter_bootstrap,start,0,[{_},{_}]},{init,start_em,1,[]},{init,do_boot,3,[]}]})

Crash dump is being written to: erl_crash.dump.1694631080.41.babysitter...done
{"init terminating in do_boot",{{badmatch,{error,{bad_return,{{ns_babysitter,start,[normal,[]]},{'EXIT',{{badmatch,{error,enospc}},[{ns_babysitter,do_write_file,3,[{file,"src/ns_babysitter.erl"},{line,94}]},{ns_babysitter,start,2,[{file,"src/ns_babysitter.erl"},{line,63}]},{application_master,start_it_old,4,[{file,"application_master.erl"},{line,293}]}]}}}}}},[{ns_babysitter_bootstrap,start,0,[{file,"src/ns_babysitter_bootstrap.erl"},{line,23}]},{init,start_em,1,[]},{init,do_boot,3,[]}]}}
init terminating in do_boot ({{badmatch,{error,{bad_return,{_}}}},[{ns_babysitter_bootstrap,start,0,[{_},{_}]},{init,start_em,1,[]},{init,do_boot,3,[]}]})

...
deminy commented

This seems to be an issue with my local Docker installation. After restarting Docker, the issue is gone.

Just to clarity: the ARM64 Docker images of version 7.1.1, 7.2.0, etc work fine on Apple M2.

Closing issue. Sorry for any inconvenience.

Glad you got it working!