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

Support more architectures and installation methods #979

Open
6 of 14 tasks
moisout opened this issue Oct 13, 2021 · 12 comments
Open
6 of 14 tasks

Support more architectures and installation methods #979

moisout opened this issue Oct 13, 2021 · 12 comments
Labels
enhancement New feature or request

Comments

@moisout
Copy link
Member

moisout commented Oct 13, 2021

description

This issue tracks the progress on supporting more architectures and installation methods

Prerequisites

  • Solid automation/workflow/ci-cd system (Github actions)

Architectures

  • x64
  • arm64
  • arm

Installation methods

  • Docker
  • Prebuilt binary/zip
  • AppImage
  • Heroku
  • AUR
  • Flatpak
  • Podman
  • Unraid docker template
  • Deb
  • Manual compilation

Please comment on this issue for more suggestions.

@moisout moisout added the enhancement New feature or request label Oct 13, 2021
@moisout moisout changed the title Support architectures Support more architectures Oct 13, 2021
@sdanfa
Copy link

sdanfa commented Oct 19, 2021

Hi, any eta when you will make it work with raspberry pi 4 64bit? (arm64)

@moisout
Copy link
Member Author

moisout commented Oct 20, 2021

I am currently working on a fix for the issue related to #986, #923, #931. Afterwards I'll be able to work on arm64 builds.

@moisout moisout changed the title Support more architectures Support more architectures and installation methods Nov 7, 2021
@moisout moisout pinned this issue Nov 7, 2021
@moisout
Copy link
Member Author

moisout commented Jan 25, 2022

Multi-architecture image for dev now available in the flavors arm, arm64 and amd64.
Just pull mauriceo/viewtube:dev, and it will use the right one on whatever architecture you are running.

Stable will be available with the next release (whenever that will be).
@sdanfa @lukino188

@myned
Copy link

myned commented Mar 15, 2022

The new docker images don't seem to be working on arm64 - they yield the same error as if I used the amd64 image on a Raspberry Pi 4B: viewtube | exec /usr/bin/node: exec format error

It works when building with build: ., but not with any images.
Looking at the docker hub tags, all of the dev images have the linux/amd64 architecture, and manually specifying the mauriceo/viewtube:dev-linux-arm64 image has the same result as mauriceo/viewtube:dev

docker-compose.yml
version: "3"

services:
  viewtube:
    build: . # works
    container_name: viewtube
    restart: unless-stopped
    #image: mauriceo/viewtube:dev # does not work
    #image: mauriceo/viewtube:dev-linux-arm64 # does not work
    depends_on:
      - viewtube-mongodb
      - viewtube-redis
    networks:
      - viewtube
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./data:/data
    environment:
      - VIEWTUBE_URL=http://localhost:8066
      - VIEWTUBE_DATABASE_HOST=viewtube-mongodb
      - VIEWTUBE_REDIS_HOST=viewtube-redis
      - VIEWTUBE_DATA_DIRECTORY=/data
    ports:
      - 8066:8066

  viewtube-mongodb:
    container_name: viewtube-mongodb
    image: mongo:4.4
    networks:
      - viewtube
    restart: unless-stopped
    volumes:
      - ./data/db:/data/db

  viewtube-redis:
    container_name: viewtube-redis
    image: redis:6
    networks:
      - viewtube
    restart: unless-stopped
    volumes:
      - ./data/redis:/data

networks:
  viewtube:

@gitrosers
Copy link

having the same issues that @myned mentioned. No ARM64 available on docker hub.

@moisout
Copy link
Member Author

moisout commented Mar 26, 2022

having the same issues that @myned mentioned. No ARM64 available on docker hub.

I created a separate issue for it :)

@moisout
Copy link
Member Author

moisout commented Mar 20, 2023

There is now the nightly tag, which is available for arm, arm64 and amd64. It gets built every night off of the development branch.
Once I have released this, the stable tag will also have all these architectures.

@InvisibleFunction
Copy link

InvisibleFunction commented Mar 23, 2023

Thanks so much for this new image! Unfortunately I ran into another issue trying to run this on my raspberry pi cluster. Viewtube apparently requires MongoDB 5, which requires a processor with ARMv8.2-A, but those in my raspberry pi 4Bs only support ARMv8.0-A. 😭

I did find a community build that should work on the raspberry pi 4b here, but was not able to find a drop in replacement container image.

Hopefully some folks with newer arm processors than mine get some good use out of this new image!

@moisout
Copy link
Member Author

moisout commented Mar 23, 2023

Thanks so much for this new image! Unfortunately I ran into another issue trying to run this on my raspberry pi cluster. Viewtube apparently requires MongoDB 5, which requires a processor with ARMv8.2-A, but those in my raspberry pi 4Bs only support ARMv8.0-A. 😭

I did find a community build that should work on the raspberry pi 4b here, but was not able to find a drop in replacement container image.

Hopefully some folks with newer arm processors than mine get some good use out of this new image!

Older versions of mongodb, like 4.4, should still work aswell. Maybe you can try that?

@InvisibleFunction
Copy link

It appears to work with mongo 4.4.18! Any reason why mongo 5 is listed as a requirement?

Here's a demo manifest: https://gist.github.com/InvisibleFunction/1a7e00bcd61676f8e146b4c5a1b69e7c

@moisout
Copy link
Member Author

moisout commented Mar 24, 2023

It appears to work with mongo 4.4.18! Any reason why mongo 5 is listed as a requirement?

Here's a demo manifest: https://gist.github.com/InvisibleFunction/1a7e00bcd61676f8e146b4c5a1b69e7c

That's because i have only tested it with mongodb 5. I'll update the documentation soon tho.

@InvisibleFunction
Copy link

It stopped working and I'm not sure why. Now I'm getting timeouts trying to connect. The container logs do end with

[ViewTube] Info	3/26/2023, 7:12:34 PM Server listening on http://0.0.0.0:8066 - {}
[ViewTube] Info	3/26/2023, 8:00:00 PM Starting subscriptions job 3 at 2023-03-26 20:00:00.063Z - {}
[ViewTube] Info	3/26/2023, 8:00:00 PM Done at 2023-03-26 20:00:00.066Z: 0 channels, 0 videos - {}
[ViewTube] Info	3/26/2023, 9:00:00 PM Starting subscriptions job 4 at 2023-03-26 21:00:00.025Z - {}
[ViewTube] Info	3/26/2023, 9:00:00 PM Done at 2023-03-26 21:00:00.027Z: 0 channels, 0 videos - {}

Hitting the api endpoint returns a document:

$ curl -s http://192.168.255.18:8066/api|tail -n 1
</html>

But that page doesn't render in a browser, for example trying to fetch this linked js file fails:

$ curl http://192.168.255.18:8066/api/swagger-ui-bundle.js
{"statusCode":500,"message":"EIO: i/o error, stat '/home/app/node_modules/.pnpm/swagger-ui-dist@4.15.5/node_modules/swagger-ui-dist/swagger-ui-bundle.js'"}

Popping into the pod seems to show that that file is available though:

root@viewtube-8686bd7bb7-z2z2s:/home/app# ls -l '/home/app/node_modules/.pnpm/swagger-ui-dist@4.15.5/node_modules/swagger-ui-dist/swagger-ui-bundle.js'
-rw-r--r-- 1 root root 1061579 Mar 26 03:23 /home/app/node_modules/.pnpm/swagger-ui-dist@4.15.5/node_modules/swagger-ui-dist/swagger-ui-bundle.js
root@viewtube-8686bd7bb7-z2z2s:/home/app# wc -l '/home/app/node_modules/.pnpm/swagger-ui-dist@4.15.5/node_modules/swagger-ui-dist/swagger-ui-bundle.js'
2 /home/app/node_modules/.pnpm/swagger-ui-dist@4.15.5/node_modules/swagger-ui-dist/swagger-ui-bundle.js

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

No branches or pull requests

5 participants