evidence-dev / docker-devenv

This repo builds a Docker image whose container instances can be used as a development environment for Evidence projects via a mounted directory
MIT License
12 stars 6 forks source link

Official image and default project template broken #9

Closed mgmorcos closed 1 year ago

mgmorcos commented 1 year ago

Official evidence-dev image does not work with default project template.

Steps to reproduce:

  1. --init a new project
  2. run the evidence-dev container
  3. you'll see this error all over the rendered report:

Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /evidence-workspace/node_modules/duckdb/lib/binding/duckdb.node)

Reproduced in multiple environments, most recently Docker Compose running on Debian Buster.

Adding libc6-compat to the image didn't help.

AmsellemJoseph commented 1 year ago

Hey, I have the same problem, I'm running on linux/arm64.

Thanks for your responses. 😊

ud3sh commented 1 year ago

Thanks for reporting the issue @mgmorcos and @AmsellemJoseph!

We are still working on a holistic solution that works on all platforms without the image size being too large.

As a stop gap, we published a new image evidencedev/devenv:ubuntu that should let you get around the issue.
In order to use this image, simply replace where you were using devenv:latest in your command line with devenv:ubuntu

e.g if you were running the following to setup your dev env

docker run -v=$(pwd):/evidence-workspace -p=3000:3000 -it --rm evidencedev/devenv:latest

run it instead with

docker run -v=$(pwd):/evidence-workspace -p=3000:3000 -it --rm evidencedev/devenv:ubuntu

mgmorcos commented 1 year ago

thanks @ud3sh now i see the container exit with the following message in logs:

exec /usr/bin/bash: exec format error

this often means wrong arch. mine is amd64, maybe you built for arm64? i'd be happy to rebuild with the Dockerfile if available.

AmsellemJoseph commented 1 year ago

Hey @ud3sh, I confirm, in linux/amd64 I have the same issue than @mgmorcos.

And when i'm running on linux/arm64, I have this issue:

✗ orders_by_month /evidence-workspace/node_modules/duckdb/lib/binding/duckdb.node: cannot open shared object file: No such file or directory.

Thanks a lot for your work and responses. 😊

ud3sh commented 1 year ago

Thanks @mgmorcos @AmsellemJoseph. Really appreciate you looking into this.

Sorry, forgot to build the test image with a multi platform option. In any case the amd64 image should be up

CleanShot 2023-10-01 at 16 49 33@2x

Pushed with this Dockerfile in case you still want to take a look.

RE:

✗ orders_by_month /evidence-workspace/node_modules/duckdb/lib/binding/duckdb.node: cannot open shared object file: No such file or directory.

@AmsellemJoseph did this work before with duckdb? I am curious how you are referencing the duckdb file. We had some setup instructions to access a typcial database running on a port your host instance on the main README.md file. i.e setting up your creds in settings using something like this would allow you to access a postgres instance running on the host machine.

## accessing postgres db running on host instance.
{
    "host": "host.docker.internal",
    "database": "yourDBname",
    "port": 5432,
    "user": "yourUsername"
}

This was from before we supported duck DB - haven't really given much thought about access a simple file on the host machine (it sounds like you are not using motherduck or any remote duckdb). As you might suspect, this devenv preceeds our support for duckdb and we haven't quite kept it up to date until you mentioned the issue.

mgmorcos commented 1 year ago

@ud3sh TY it's working for me now 🙏

AmsellemJoseph commented 1 year ago

hey @ud3sh,

my bad, I misconfigured something, maybe missclick 😅.

Thanks a lot for your work, seems to work now.

ud3sh commented 1 year ago

@mgmorcos @AmsellemJoseph

We will leave evidencedev/devenv:ubuntu hanging around for now, but you should be able to use evidencedev/devenv:latest going forward after pulling the latest.