Issues setting up `wdb` on ARM64 Mac for custom module development
Thanks for this great project! I'm trying to add a custom Odoo module and get the development environment running on my M1 Mac, but I've hit some snags with the wdb service.
Here's a rundown of the steps and issues:
1. Initial YAML Validation Error for wdb Dependency
The odoo service's depends_on section for wdb in dev-standalone.yml initially was:
# In dev-standalone.yml
services:
# ... other services ...
odoo:
# ... other odoo configs ...
depends_on:
db:
condition: service_healthy
wdb: # <-- Original state
command: ['odoo', '--dev', 'wdb,reload,qweb,werkzeug,xml']
Running docker-compose -f docker-compose.yml -f dev-standalone.yml up -d --build gave:
validating /path/to/my/dockerdoo/dev-standalone.yml: services.odoo.depends_on.wdb must be a mapping
I fixed this by adding condition: service_started under wdb:.
2. Platform Mismatch Warning for wdb
After the YAML fix, the same docker-compose ... up command started the services but showed this warning for the wdb container (which uses image: kozea/wdb:3.3.0 by default in dev-standalone.yml):
! wdb The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
3. Attempting to Specify ARM64 Platform for wdb:3.3.0
To address the warning, I updated dev-standalone.yml for the wdb service:
# In dev-standalone.yml
services:
wdb:
image: kozea/wdb:3.3.0
platform: linux/arm64 # <-- Added this
# ...
Running docker-compose ... up then failed with:
image with reference kozea/wdb:3.3.0 was found but its platform (linux/amd64) does not match the specified platform (linux/arm64)
This confirmed the 3.3.0 tag doesn't have an ARM64 variant available through this method.
4. Attempting to Use wdb:latest with ARM64 Platform
To see if a different tag would provide an ARM64 variant, I then changed the image to kozea/wdb:latest in dev-standalone.yml, still specifying platform: linux/arm64:
# In dev-standalone.yml
services:
wdb:
image: kozea/wdb:latest # <-- Changed to latest
platform: linux/arm64 # <-- Kept this
# ...
However, this resulted in the exact same error:
image with reference kozea/wdb:latest was found but its platform (linux/amd64) does not match the specified platform (linux/arm64)
I'm a bit puzzled why explicitly requesting linux/arm64 for kozea/wdb (both 3.3.0 and latest tags) is still indicating an AMD64 image is being found, or that an ARM64 variant isn't available/accessible. The Odoo and DB services seem fine.
Any guidance on what might be happening with the wdb image resolution on ARM64, or how to get this part of the development setup working correctly, would be much appreciated. Does it even matter?
My main point of confusion was whether the original wdb: entry in dev-standalone.yml (under odoo.depends_on, as detailed in step 1) being a key without further mapping was an intentional configuration?
Thanks!