memos icon indicating copy to clipboard operation
memos copied to clipboard

Please add support for arm/v7 to run on Raspberry Pi

Open truegilb opened this issue 2 years ago • 1 comments

Is your feature request related to a problem?

Would love to run this on raspberry pi! However getting the following while running the docker command on the pi:

latest: Pulling from neosmemo/memos docker: no matching manifest for linux/arm/v7 in the manifest list entries.

Describe the solution you'd like

Build images that support arm.

Additional context

No response

truegilb avatar Dec 18 '22 09:12 truegilb

I don't know why there aren't prebuilds. I have a feeling arm32 is supported less and less in favor of 64 flavors :/ Good news is this one is easily crossbuilt and it doesn't look like any 32 bit incompatible packages are used. At least I didn't note any limitations during (very short) usage on a pi 2. I roughly followed https://www.docker.com/blog/multi-arch-images/ for docker buildx in the cloned git repository folder, preceeded by a sudo apt install qemu qemu-user-static for the last two versions. Takes a bit but worked so far. If you have a linux machine or VM, it's really just a couple of lines to paste. Didn't do the pushing to docker hub part but saved to a tar instead (docker save [ID] > memos.tar), transferred to the pi and loaded it (docker load < memos.tar). Hope that helps!

raisinbear avatar Dec 18 '22 18:12 raisinbear

I don't know why there aren't ...

did this for a couple of my own images a while ago, setup + publishing is basically this:

install https://github.com/docker/buildx

# containers needed for various architectures
docker run -it --rm --privileged tonistiigi/binfmt --install all

docker buildx create --name main
docker buildx use main
docker buildx inspect --bootstrap

docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t mgschwandtner/memos-unofficial-testing:0.8.3 --push .

docker buildx rm

(basically the same as in the blog post)

published v0.8.3 on docker hub for testing purposes

since my pi apparently just broke, i sadly can't test it ...

dontWatchMeCode avatar Dec 19 '22 21:12 dontWatchMeCode

Wahou, super to find a ARM (or multi-arch) compatifiblity. Personaly I have an issue using @m-gschwandtner image.

=> ERROR pushing mgschwandtner/memos-unofficial-testing:0.8.3 with docker                                                                                  1.1s

ERROR: failed to solve: server message: insufficient_scope: authorization failed it is a system error or a Docker.com ? Thanks

bonnebulle avatar Jan 02 '23 13:01 bonnebulle

If you need arm/v7, I can push pushed my 0.9.1 build to docker hub. Runs fine on a Pi2B.

raisinbear avatar Jan 02 '23 13:01 raisinbear

EDIT : I was doing wrong... To run, obviously, buildx container needs to be running too (in parallel)


Maybe dont know how to do it well... My console output :

---
profile
mode: prod
port: 5230
dsn: /var/opt/memos/memos_prod.db
version: 0.9.1
---

███╗   ███╗███████╗███╗   ███╗ ██████╗ ███████╗
████╗ ████║██╔════╝████╗ ████║██╔═══██╗██╔════╝
██╔████╔██║█████╗  ██╔████╔██║██║   ██║███████╗
██║╚██╔╝██║██╔══╝  ██║╚██╔╝██║██║   ██║╚════██║
██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║╚██████╔╝███████║
╚═╝     ╚═╝╚══════╝╚═╝     ╚═╝ ╚═════╝ ╚══════╝

Version 0.9.1 has started at :5230
error: no such table: activity
failed to create activity
github.com/usememos/memos/server.(*Server).Run
	/backend-build/server/server.go:103
main.run
	/backend-build/bin/server/main.go:48
main.execute
	/backend-build/bin/server/main.go:65
main.main
	/backend-build/bin/server/main.go:74
runtime.main
	/usr/local/go/src/runtime/proc.go:250
runtime.goexit
	/usr/local/go/src/runtime/asm_arm.s:831

PS : I discover buildx, thanks

bonnebulle avatar Jan 02 '23 16:01 bonnebulle

Hm. What dir are you mapping to the database folder inside the container? Is it empty/is the database it contains valid and does the user you’re running the container as have the all access permissions? I‘d try running as default user with a completely empty folder mapped to the db path and try to work it out from there ;)

raisinbear avatar Jan 02 '23 17:01 raisinbear

I dont mapped anything, just following short notice on hub.docker.com ;)

  • I run as root
docker run -v memos-db raisinbear/memos-unofficial-arm
  • still learning docker (I will search how to mapping works) ... thanks

bonnebulle avatar Jan 02 '23 17:01 bonnebulle

Ah, maybe there's the issue. I'm refering to the argument of the -v part here (taken from the repository front page, just exchanged the repo):

docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos raisinbear/memos-unofficial-arm:latest

The part before the : is the directory on your host file system you want to use to persistently store the database. So this "maps" part of the file system structure visible to you inside the container. By doing so, your database (created during first successful start of memos) will not get erased like the rest of the local data inside the container if you remove it, for e.g. updating to a newer version. The other part is specific to the file system hierarchy inside the container and for memos needs to be /var/opt/memos. Plus I guess you also want to have the port mapping, the -p part. Otherwise, you won't be able to reach the instance ;)

And no worries, I have been learning docker for quite a while now. There's much to discover 😅

raisinbear avatar Jan 02 '23 18:01 raisinbear

The -v option, mapping my ~/.memos/ directory to the docker... ... dont works : less or more, same error ! I check permissions, all is fine. I will try again in a few days Tanks again

bonnebulle avatar Jan 02 '23 20:01 bonnebulle

@bonnebulle please build with release branch instead of main.

boojack avatar Jan 02 '23 23:01 boojack

Thanks for the remark @boojack, that's on me. I didn't switch branches before building. Just rebuilt and pushed images based on the 0.9.1-release. However, I'm not sure that is @bonnebulle's issue, since the previous (main-)build runs perfectly fine on my raspberry. I don't know what their architecture is, so I also pushed an arm/v6 image. I suppose the error would be different for an architecture mismatch, though.

raisinbear avatar Jan 03 '23 09:01 raisinbear

Thanks @boojack and @raisinbear ... Like edited up, I was not running buildx ... so Memos cant works. Yes, I say, am learning :))

bonnebulle avatar Jan 14 '23 15:01 bonnebulle

I didn't switch branches before building. Just rebuilt and pushed images based on the 0.9.1-release.

I just re.do the process for the 0.10.2 version (switching to the right branch) : it's works !! Thanks @raisinbear and @boojack for the work :)

bonnebulle avatar Jan 21 '23 13:01 bonnebulle

Glad to hear @bonnebulle! :)

raisinbear avatar Jan 21 '23 13:01 raisinbear

使用当前最新镜像 raisinbear/memos-unofficial-arm:latest (0.12.2) 在树莓派3b上部署后,显示的发布时间不对。 首页显示为1年后,详情页显示为 2024/07/24 00:16:48

使用 neosmemo/memos 镜像在linux服务器上部署正常。

leafney avatar May 04 '23 15:05 leafney

Issue is not in English. It has been translated automatically.


After deploying the latest image raisinbear/memos-unofficial-arm:latest (0.12.2) on the Raspberry Pi 3b, the displayed release time is incorrect. The home page displays 1 year later, and the details page displays 2024/07/24 00:16:48

Using the neosmemo/memos image deploys fine on a linux server.

Issues-translate-bot avatar May 04 '23 15:05 Issues-translate-bot

使用当前最新镜像 raisinbear/memos-unofficial-arm:latest (0.12.2) 在树莓派3b上部署后,显示的发布时间不对。 首页显示为1年后,详情页显示为 2024/07/24 00:16:48

使用 neosmemo/memos 镜像在linux服务器上部署正常。

To be honest, I'm not even using an armv7 device anymore. I just kept up pushing the recent releases either way. Just for testing, I booted an old pi3b a nd for me it seems to work: test

I remember there was an issue I had to fix that screwed with timezones in docker on raspbian a while ago, something to do with libseccomp if I'm not mistaken. I don't know if that still exists. Other than that, I'm sorry I have no idea what could be going on if system time zone is correct and the problem also exists with a fresh database 😐

raisinbear avatar May 04 '23 16:05 raisinbear

使用当前最新镜像 raisinbear/memos-unofficial-arm:latest (0.12.2) 在树莓派3b上部署后,显示的发布时间不对。 首页显示为1年后,详情页显示为 2024/07/24 00:16:48 使用 neosmemo/memos 镜像在linux服务器上部署正常。

To be honest, I'm not even using an armv7 device anymore. I just kept up pushing the recent releases either way. Just for testing, I booted an old pi3b a nd for me it seems to work: test

I remember there was an issue I had to fix that screwed with timezones in docker on raspbian a while ago, something to do with libseccomp if I'm not mistaken. I don't know if that still exists. Other than that, I'm sorry I have no idea what could be going on if system time zone is correct and the problem also exists with a fresh database 😐

hello,thank for docker image,can you please update your image,thanks!

joywqy avatar May 23 '23 08:05 joywqy

@joywqy I found that the latest version of memos v0.13.0 official image has started to support armv7, I will try again tonight.

leafney avatar May 23 '23 08:05 leafney