lukechannings / deno-arm64 Goto Github PK
View Code? Open in Web Editor NEWARM64 builds for Deno
ARM64 builds for Deno
Hi,
This is great, thank you. Out of interest (and I'm no expert in Rust / the build process) if I clone the repo and run the build command on an M1 Mac the process fails at the end. Am I missing something?
docker build -t deno-build --build-arg DENO_VERSION=v1.21.2 --file ./Dockerfile.compile .
...
error: could not compile `deno_runtime`
Caused by:
process didn't exit successfully: `CARGO=/root/.rustup/toolchains/1.59.0-aarch64-unknown-linux-gnu/bin/cargo
...
Hello...
I find this project interesting, but i seem to be having an issue...
See, i Host Discord Bots for Servers, and i decided to move over to Oracle Cloud, which involved me using Ampere (or the ARM architecture), so i found this project.
The issue im having is, when i run more than one bot at a time, every bot, except for the one i started first, dies. I have no idea if this is a limitation with this project, or if its Oracle, but ive been having this issue since yesterday
Deno can't run on Snapdragon 865 Android phone?
The operating environment is zerotermux
Linux localhost 4.19.157-perf-g4388af90b0da #1 SMP PREEMPT Wed Mar 1 21:53:21 CST 2023 aarch64 Android
~ $ ls ./deno -l
-rwxrwxrwx 1 u0_a26 u0_a26 104878816 May 5 00:55 ./deno
~ $ ./deno
bash: ./deno: No such file or directory
$ sha1sum deno
0e9a4200206216fd6c94f1ecde39ddc958c16b47 deno
I'm running docker with the hypriot image in my Raspberry pi. I'm having the following error:
$ docker run lukechannings/deno --help
Unable to find image 'lukechannings/deno:latest' locally
latest: Pulling from lukechannings/deno
docker: no matching manifest for linux/arm/v7 in the manifest list entries.
See 'docker run --help'
This is my docker version:
$ docker --version
Docker version 20.10.7, build f0df350
I'm not sure if the image you are providing allow us to run deno in a rpi
The v1.31.2 release binary says it is v1.31.1.
> curl -LOs https://github.com/LukeChannings/deno-arm64/releases/download/v1.31.2/deno-linux-arm64.zip
> unzip -q deno-linux-arm64.zip
> ./deno --version
deno 1.31.1 (release, aarch64-unknown-linux-gnu)
v8 11.0.226.19
typescript 4.9.4
Hello, appreciate this! Could you maybe also publish a build for android/linux?
deno
outputs this:
exec: Failed to execute process '/data/data/com.termux/files/home/.deno/bin/deno': The file exists and is executable. Check the interpreter or linker?
Only when I use Arch Linux inside Termux it works. It's the same binary that works for Arch Linux but not for Termux.
I have a build action that always fails due to node compatibilty libraries missing. Is there anything I do wrong?
The dockerfile is very simple:
FROM lukechannings/deno:latest
EXPOSE 3000
WORKDIR /app
COPY . .
RUN deno cache main.ts
CMD ["run", "--allow-read", "--allow-write", "--allow-env", "--allow-net", "main.ts"]
And so is the github action:
name: Build and Push Image to registry
on:
release:
types: [created]
permissions:
packages: write
contents: read
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build and Push
uses: docker/build-push-action@v4
with:
context: .
platforms: linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
Hello, I recognize that this package has been essentially deprecated because Deno has supported arm64 now. However, I am trying to install Deno on a raspberry pi 4, and now I'm unable to since no installation is working (deno, cargo, snap, etc.) and this has been removed.
I'm unsure if snap just hasn't updated its servers yet, would it be possible to keep the builds available until everything updates?
To reduce the size of the image, ~20MB save based on the official deno image, I hope we can also build one more version of the image with alpine
I have installed deno with curl on termux without any proot but failed.
Then, I have istalled it with proot alpine it shows the same error
Thank you for this project, it's a life-saver for those of us using deno in arm64 envs.
The latest 1.38.0 release doesn't seem to contain the actual binary output, which seemed similar to #22
Similar issue to before!
https://github.com/LukeChannings/deno-arm64/releases/tag/v1.40.5 doesn't have the binary asset (i.e. like https://github.com/LukeChannings/deno-arm64/releases/download/v1.40.4/deno-linux-arm64.zip).
I've tried to install Deno 1.30 on my android phone, but apparently there is no proper asset with latest 1.30 release? It should contain deno-linux-arm64.zip
I believe
I ran docker container run --rm -it lukechannings/deno:latest
, but an error occurred. The error was Module not found "https://deno.land/std/examples/welcome.ts".
.
I accessed https://deno.land/std/examples/welcome.ts
, but welcome.ts
was not found. So, it might be better to modify this line.
Thanks !
I am running deno-arm64 on an Raspberry Pi 4B, with standard denon
v2.5.0 installed on it. I'm trying to run a script with deno
+ denon
to act as a Discord bot, it is linked here: https://github.com/tardiwave/songlink-discord-bot .
I don't know where the problem lies but I'll file an issue in case others have issues too. I am filing an issue with the script maker too, but I figure here is a good place to start.
When loading this script, it cannot find compiler options experimentalDecorators
, or isolatedModules
. This makes other things not load/crash. I have the log/output here:
[*] [main] v2.5.0 [*] [daem] watching path(s): **/*.* [*] [daem] watching extensions: ts,tsx,js,jsx,json [!] [#0] starting
deno run --allow-read --allow-env --allow-write --allow-net --config tsconfig.json --unstable mod.ts mod.tsUnsupported compiler options in "file:///root/songlink-discord-bot-main/tsconfig.json". The following options were ignored: experimentalDecorators, isolatedModules A new release of Deno is available: 1.30.0 โ 1.30.1 Run
deno upgradeto install it. Error: [401] The Authorization header was missing or invalid. at Object.processQueue (https://deno.land/x/[email protected]/src/rest/process_queue.ts:101:40) at async Object.processRequest (https://deno.land/x/[email protected]/src/rest/process_request.ts:31:5) error: Uncaught (in promise) Error: Location: Error.captureStackTrace(errorStack); ^ at Object.runMethod (https://deno.land/x/[email protected]/src/rest/run_method.ts:36:9) at getGatewayBot (https://deno.land/x/[email protected]/src/helpers/misc/get_gateway_bot.ts:7:21) at startBot (https://deno.land/x/[email protected]/src/bot.ts:33:29) at file:///root/songlink-discord-bot-main/mod.ts:82:1 [E] [daem] app crashed - waiting for file changes before starting ...
It's missing deno-linux-arm64.zip
Thanks for your efforts in providing arm64 binaries of deno! Its awesome to have the option to use them.
Currently the container base images in use are ubuntu:16.04
and ubuntu:20.04
which is kinda old. I know that 16.04 still receives extended security support but updating to 22.04 might seem wise?
While looking into the Dockerfiles I noted some other things:
The compile image also tries to install python which was python2 back then. I'm not even sure where its used as its not referenced anywhere (rg python
is empty). It should be replaced by python3 or removed when not used.
Also /bin
is a symlink to /usr/bin
so maybe use /usr/bin
directly in ENTRYPOINT and COPY places. Maybe even use /usr/local/bin
as stuff not managed by the package manager is normally placed there. But that might be a breaking change for some? (denoland/deno uses /usr/bin/deno
and /usr/local/bin/docker-entrypoint.sh
. Not sure why they use both locations.)
Feel free to follow or ignore my suggestions. I can also create a PR to implement some/all but I want to discuss them first and cant really test them myself so I went for creating an issue. Thanks again for your efforts!
This makes the installation script simply return 404 :(
I'm currently using the following as a script that gets called inside my container... open to suggestions.
Aside: really wish there was an easier way to download the latest release... Added $GITHUB_TOKEN
header because I was bumping up against api request limits when testing.
#! /bin/bash
cd /tmp
ARCH=$(uname -m)
VERSION=$(curl --header "authorization: Bearer $GITHUB_TOKEN" -s https://api.github.com/repos/LukeChannings/deno-arm64/releases/latest | grep "tag_name" | cut -d : -f 2 | tr -d \"\,[:space:])
echo ""
echo "Retrieving Deno: $VERSION $ARCH"
# linux/amd64 --- -Lsf
[ "$ARCH" == "x86_64" ] && curl -Lsf "https://github.com/denoland/deno/releases/download/$VERSION/deno-x86_64-unknown-linux-gnu.zip" -o deno.zip || true
# linux/arm64
[ "$ARCH" == "aarch64" ] && curl -Lsf "https://github.com/LukeChannings/deno-arm64/releases/download/$VERSION/deno-linux-arm64.zip" -o deno.zip || true
# extract deno.zip to /usr/local/bin/deno
[ -f "deno.zip" ] && unzip deno.zip && rm deno.zip && mv deno /usr/local/bin/deno
It seems like the release v1.32.4
does not have the pre-built deno binary: https://github.com/LukeChannings/deno-arm64/releases/tag/v1.32.4
This was causing an issue on my Docker image that results in:
> [14/22] RUN curl -s https://gist.githubusercontent.com/LukeChannings/09d53f5c364391042186518c8598b85e/raw/ac8cd8c675b985edd4b3e16df63ffef14d1f0e24/deno_install.sh | sh:
curl: (22) The requested URL returned error: 404
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.