Sync Gateway Docker Image for Apple Silicon (aka M1)

Is there a docker image for apple’s new M1 systems? there are couchbase server docker images for M1 with platform aarch64, couldn’t find aarch64 images for sync-gateway enterprise version. Any direction on this is appreicated.

1 Like

@PShri

It’s something the team is aware of and is working on. I don’t have a specific date that it will be available.

Thanks
Aaron

Thanks @biozal

Are there any work arounds that I can use until then?

One thing I do not understand.
Release notes for sync-gateway state that starting at version 3.0.0 M1 chips are supported.
But none of the docker images for these version support them; docker itself tells you the images don’t support M1.
I guess my point is: when they are actually truly supported, how can we know?

PS: I’ve had a brand new M1 laptop collecting dust on storage for several months just cause I can’t run the project on it due to this issue and my employer is justifiably losing their patience. I know my opinion probably has very little weight but I’m very disappointed in Couchbase; this is taking too long to sort out. I understand thinks take their time and should not be rushed but it’s been close to 2y since M1 released; I can’t see this as anything but negligence at this point.

Docker is able to run some amd64 images through emulation on an M1 machine. This did not work for the Couchbase Server image, but fortunately, there now is an arm64 image available for it.

I have always been able to run Sync Gateway through the emulation on my M1 machine. Just for development, it seems to work fine. Did you try it and had problems getting it to run?

1 Like

I tried, yes. Docker says it’s an incompatible image, but lets you run it. But when I do it just doesn’t work; I remain unable to connect to Couchbase. Is there any extra steps that need to be taken?

This repository contains a full docker compose setup with instructions to set up a Couchbase Server and Sync Gateway. It works for me with an M1.

1 Like

I was able to run your repo but I was unable to run our docker config similarly, on v3. The automatic migration got rid of half of the configuration and the documentation barely has any info on this JSON config file. I found out, however, that one can still use v2 with Couchbase v7. I managed to get it working through emulation, using the same version I was using before M1 with no need to change the settings.

For anyone else coming here from Google, stick to sg v2 if you’re already on it. If you want to upgrade to v3, wait until they properly document it.

Compared to v2, the v3 config in Sync Gateway was split into two separte parts:

  • Bootstrap config
    • The bootstrap config continues to be a JSON file, which is now much smaller in scope
    • Specifies how that specific SG node runs and how it connects to Couchbase Server
    • Reference: Bootstrap Configuration | Couchbase Docs
  • Database Configs
    • The database configs are now stored and managed through Sync Gateway’s REST API
    • These specify how each SG database should behave across the full set of SG nodes, avoiding the need to update many SG configs with the same database config changes
    • Reference: Database Configuration | Couchbase Docs

As you’ve found out, the auto-migration in v3 takes care of splitting your existing legacy config into the nessesary components to continue using persistent configuration.

Let me know if there’s anything else that can be clarified, or specific changes in the docs you’d like to see (or you can leave feedback directly on the relevant documentation page using the “Leave Additional Feedback?” link)

As for the main topic: Docker Images for Apple Silicon/aarch64 - I’ve chased up the status internally to determine what’s blocking this from being available.