MDeLuise / plant-it

🪴 Self-hosted, open source gardening companion app
https://plant-it.org
GNU General Public License v3.0
686 stars 25 forks source link

Support for linux/arm/v7 docker image for Raspberry Pi 4 #64

Closed BrunnerLivio closed 11 months ago

BrunnerLivio commented 12 months ago

Avoid duplicated feature requests

Description

I would like to self-host plant-it on my Raspberry Pi 4. For that, I'd require a Docker image built for linux/arm/v7.

When running the following command on my Raspberry Pi 4:

docker pull msdeluise/plant-it-backend:latest

I get the following error:

no matching manifest for linux/arm/v7 in the manifest list entries

Solution

What are alternatives?

No response

Additional context

No response

MDeLuise commented 11 months ago

Hi @BrunnerLivio, thanks for the feedback!

I started to take a look at this issue, I pushed on DockerHub a version that should run on the raspberry pi of both the backend (msdeluise/plant-it-backend:test-arm) and the frontend (msdeluise:plant-it-frontend:test).

Right now I can not test the deployment on a raspberry pi, but I will as soon as possible. If you want, you can test the following deployment and give me some feedback (remember to create a backend.env and a frontend.env file as written here):

version: "3"

name: plant-it
services:
  backend:
    image: msdeluise/plant-it-backend:test-arm
    env_file: backend.env
    depends_on:
      - db
      - cache
    restart: unless-stopped
    volumes:
      - "./upload-dir:/upload-dir"
    ports:
      - "8080:8080"

  db:
    image: beercan1989/arm-mysql:5.7.33-1
    restart: always
    env_file: backend.env
    volumes:
      - "./db:/var/lib/mysql"

  cache:
    image: redis:7.2.1
    restart: always

  frontend:
    image: msdeluise/plant-it-frontend:latest
    env_file: frontend.env
    links:
      - backend
    ports:
      - "3000:3000"
BrunnerLivio commented 11 months ago

I was able to pull the image on a Raspberry Pi 2, 32 bit. Though I unfortunately just switched to 64 bit Raspberry Pi 4 which is the target machine I'd loved to deploy plant-it. The old Raspberry Pi 2 wouldn't be able to hold the load running plant-it since I already max out it's CPU. Sorry terrible timing 😅

Therefore I'd need a linux/arm/v8 based Docker image. I could try to create PR but I assume I wouldn't be able to test it since you're using a Jenkins instance that is not publicly accessible?

Either way I'd definitely keep the linux/arm/v7 image for older Raspberry Pi users.

MDeLuise commented 11 months ago

No worries about the timing; it's still useful to have this discussion in order to make the project works for most possible people 😁

Given that you now have a 64-bit operating system, you should be able to directly use the provided linux/arm64 version of the Docker images. But I'm not sure of this so please let me know.

Yes as you said the Jenkins instance is currently private since the project is in its early stages and hasn't received an official release yet (i.e. no 1.x version).

Nevertheless, I've just pushed linux/arm/v8 version for the backend (msdeluise/plant-it-backend:test-arm) and I'll push even the frontend (msdeluise:plant-it-frontend:test) as soon as possible just to cover all tests on this topic.

Please let me know if the linux/arm64 versions work for you. If they're good, we may not need to mantain the linux/arm/v8 versions. But if you run into any issues with the linux/arm64 versions, give the linux/arm/v8 versions a try, thanks.

BrunnerLivio commented 11 months ago

The linux/arm64 works like a charm on my Raspi 4 64-bit. So from my pov we can close this issue. Thanks a lot for your support ❤️ 🪴

MDeLuise commented 11 months ago

Thanks you so much, enjoy the app! 😁🪴