Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arm64 support #28

Open
Randalix opened this issue May 2, 2024 · 9 comments
Open

Arm64 support #28

Randalix opened this issue May 2, 2024 · 9 comments

Comments

@Randalix
Copy link

Randalix commented May 2, 2024

Can we get arm64 support?

@martastain
Copy link
Member

That would be nice indeed. Are you interested in running on mac or a generic arm server?

Could you try building the image yourself using make build command on your platform?

@Randalix
Copy link
Author

Randalix commented May 7, 2024

I'm running debian on a m1 mac.
I've tried to build the server, but currently I'm stuck here:

$ make check
sed -i "s/^version = \".*\"/version = \"1.0.11\"/" pyproject.toml
poetry run ruff check . --select=I --fix
poetry run ruff format .
275 files left unchanged
poetry run ruff check . --fix
poetry run mypy .
ayon_server/addons/addon.py:550: error: Item "None" of "BaseSettingsModel | None" has no attribute "dict"  [union-attr]
Found 1 error in 1 file (checked 261 source files)
make: *** [Makefile:12: check] Error 1

Will give it another try tomorrow.

@martastain
Copy link
Member

You don't need to use the Makefile in ayon-backend repo. This (ayon-docker) repository has its own makefile with "build" target.

It should clone both backend and frontend locally and build a local copy of ynput/ayon:latest image, which you can then use. I assume it SHOULD build it based on your platform.

You may also need to tweak the Dockerfile to use the correct base images - honestly, I am not sure about that part, but both node and python images used in the dockerfile have their arm64v8 equivalents:

https://hub.docker.com/r/arm64v8/python/
https://hub.docker.com/r/arm64v8/node/

@ballinger
Copy link

ballinger commented Jul 26, 2024

same issue here

[+] Running 6/6
 ✔ Network ayon-docker_default                                                                                                                           Created                                                                                                                              0.3s 
 ✔ Volume "ayon-docker_db"                                                                                                                               Created                                                                                                                              0.0s 
 ✔ Container ayon-docker-redis-1                                                                                                                         Created                                                                                                                             12.4s 
 ✔ Container ayon-docker-postgres-1                                                                                                                      Created                                                                                                                             12.4s 
 ✔ Container ayon-docker-server-1                                                                                                                        Created                                                                                                                              0.2s 
 ! server The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested                                                                                                                                      0.0s 
Attaching to postgres-1, redis-1, server-1
redis-1     | 1:C 26 Jul 2024 17:18:29.684 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis-1     | 1:C 26 Jul 2024 17:18:29.688 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis-1     | 1:C 26 Jul 2024 17:18:29.688 * Redis version=7.2.5, bits=64, commit=00000000, modified=0, pid=1, just started
redis-1     | 1:C 26 Jul 2024 17:18:29.688 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
redis-1     | 1:M 26 Jul 2024 17:18:29.690 * monotonic clock: POSIX clock_gettime
redis-1     | 1:M 26 Jul 2024 17:18:29.692 * Running mode=standalone, port=6379.
redis-1     | 1:M 26 Jul 2024 17:18:29.693 * Server initialized
redis-1     | 1:M 26 Jul 2024 17:18:29.694 * Ready to accept connections tcp

postgres-1  | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
postgres-1  | 
postgres-1  | 2024-07-26 19:18:36.130 CEST [55] LOG:  received fast shutdown request
postgres-1  | waiting for server to shut down....2024-07-26 19:18:36.144 CEST [55] LOG:  aborting any active transactions
postgres-1  | 2024-07-26 19:18:36.150 CEST [55] LOG:  background worker "logical replication launcher" (PID 61) exited with exit code 1
postgres-1  | 2024-07-26 19:18:36.153 CEST [56] LOG:  shutting down
postgres-1  | 2024-07-26 19:18:36.161 CEST [56] LOG:  checkpoint starting: shutdown immediate
server-1    | exec /bin/bash: exec format error
postgres-1  | 2024-07-26 19:18:36.654 CEST [56] LOG:  checkpoint complete: wrote 918 buffers (5.6%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.168 s, sync=0.305 s, total=0.501 s; sync files=301, longest=0.290 s, average=0.002 s; distance=4222 kB, estimate=4222 kB
postgres-1  | 2024-07-26 19:18:36.669 CEST [55] LOG:  database system is shut down
postgres-1  |  done
postgres-1  | server stopped
postgres-1  | 
postgres-1  | PostgreSQL init process complete; ready for start up.
postgres-1  | 
postgres-1  | 2024-07-26 19:18:36.809 CEST [1] LOG:  starting PostgreSQL 15.7 (Debian 15.7-1.pgdg120+1) on aarch64-unknown-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
postgres-1  | 2024-07-26 19:18:36.834 CEST [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
postgres-1  | 2024-07-26 19:18:36.834 CEST [1] LOG:  listening on IPv6 address "::", port 5432
postgres-1  | 2024-07-26 19:18:36.843 CEST [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres-1  | 2024-07-26 19:18:36.867 CEST [72] LOG:  database system was shut down at 2024-07-26 19:18:36 CEST
postgres-1  | 2024-07-26 19:18:36.901 CEST [1] LOG:  database system is ready to accept connections
server-1 exited with code 1
server-1    | exec /bin/bash: exec format error

added platform: linux/arm64 to the yml files

WARN[0000] /home/phil/ayon-docker/docker-compose.yml: `version` is obsolete 
[+] Running 0/1
 ⠹ server Pulling                                                                                                                                                                                                                                                                             1.2s 
image with reference docker.io/ynput/ayon:latest was found but does not match the specified platform: wanted linux/arm64, actual: linux/amd64

gave it another try with a fresh pull...

sudo docker compose up
WARN[0000] /home/phil/ayon-docker/docker-compose.yml: `version` is obsolete 
[+] Running 0/1
 ⠙ server Pulling                                                                                                                                                                                                                                                                             1.2s 
image with reference docker.io/ynput/ayon:latest was found but does not match the specified platform: wanted linux/arm64, actual: linux/amd64

@martastain
Copy link
Member

Out of the curiosity - what platform do you use? Ampere?

@ballinger
Copy link

I usually just test stuff with it...it's a PI 4 - latest 64bit Debian OS

@martastain
Copy link
Member

Gotcha. I doubt we'll support RaPi natively as it... Well... Doesn't make much sense, but have you tried building the image yourself? I wonder if that works or has unresolvable dependencies

@ballinger
Copy link

ballinger commented Jul 26, 2024 via email

@Redwolf223
Copy link

Redwolf223 commented Aug 25, 2024

I've managed to build the image using qemu and successfully started PostgreSQL and Redis using the same setup.

But I'm encountering an issue while trying to start the ayon-docker-server on my Raspberry Pi 5.

The server fails to initialize with the following error:

`2024-08-25 22:32:34 ERROR server Unable to initialize users

Traceback (most recent call last):
File "/backend/ayon_server/api/server.py", line 292, in init_api
module = importlib.import_module(module_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1204, in _gcd_import
File "", line 1176, in _find_and_load
File "", line 1147, in _find_and_load_unlocked
File "", line 690, in _load_unlocked
File "", line 940, in exec_module
File "", line 241, in _call_with_frames_removed
File "/backend/api/users/init.py", line 3, in
from . import avatar, password_reset, users
File "/backend/api/users/avatar.py", line 14, in
from ayon_server.helpers.thumbnails import process_thumbnail
File "/backend/ayon_server/helpers/thumbnails.py", line 5, in
from PIL import Image
File "/usr/local/lib/python3.11/site-packages/PIL/Image.py", line 100, in
from . import _imaging as core
ImportError: libXau-154567c4.so.6.0.0: failed to map segment from shared object
`

Based on the traceback, it seems the error is related to the Pillow (PIL) library trying to load a shared object libXau-154567c4.so.6.0.0, which fails due to a mapping error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants