armv7 architecture
craviee opened this issue · comments
Hello, I'm using CasaOS as a HomeServer with Raspberry PI 3B+ (armv7), and I would like to use HoloPlay (using docker) in it, but the thing is I think HoloPlay is only in x86-64 arch, right?
I can help with this, I just have no idea how can I start with this type of porting.
Which would be the steps to make HoloPlay possible in armv7?
Hello @craviee
I think it possible with armv7, HoloPlay is an web application. I think the build docker isn't good, the platform is set : https://github.com/stephane-r/holoplay-pwa/blob/main/Dockerfile
For now, i build Docker image from my Macbook. I think it's good to add an Github action for this.
Oh, that's great. I'm going to test it.
I was using this one: https://hub.docker.com/r/spout8301/holoplay/tags
Edit: I got it now, this is the official one, I just have to change the Dockerfile to use --platform=linux/arm/v7
instead, right?
I think the best is without platform argument. Can you try with your code and without platform ?
When I tried to run without platform and also with --platform=linux/arm/v7
, using docker build -t holoplay .
it caused a failure in network in npm install.
I create a image before npm i
and entered into it to see clearly what is going on:
root@raspberrypi:/home/pi/Desktop/holoplay-pwa# docker run -it holoplay sh
/app # ls
package-lock.json package.json
/app # npm i
npm ERR! code ERR_SOCKET_TIMEOUT
npm ERR! errno ERR_SOCKET_TIMEOUT
npm ERR! network request to https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz failed, reason: Socket timeout
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'
npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-09-13T22_23_36_843Z-debug-0.log
Funny thing is I can download this package normally, but not in docker, maybe docker is blocking it somehow.
I think the solution is to use docker buildx
, but i'm not familiar with it.
I'll try some test today :)
Edit : i've run build without platform argument from Dockerfile, build is ok (on Ubuntu server, not with my Macbook M1). Maybe try to add this github action on the repo : https://docs.docker.com/build/ci/github-actions/multi-platform/
Sorry, I'm a lost here, can you hold-hand me a little? :)
You mean that I should write a file placed on .github/workflows
, alongisde release.yml
, based on the link you provided and PR this in this repo?
But reading the release.yml
I thought you would do something similar to push to docker hub, but indeed was just release.
No problem :^)
Hey @craviee
Can you try 1.9.5 version ? I've add an CI for build on amd64, arm64 and arm/v7 platforms. I've also reduce the image size from 261mo to 20mo by replacing node-alpine by nginx-alpine.
https://hub.docker.com/repository/docker/spout8301/holoplay/tags?page=1&ordering=last_updated