paypal / junodb

JunoDB is PayPal's home-grown secure, consistent and highly available key-value store providing low, single digit millisecond, latency at any scale.
Apache License 2.0
2.56k stars 163 forks source link

Issue with Docker Build on MACOS #146

Open abhishek0909 opened 1 year ago

abhishek0909 commented 1 year ago

Docker build is erroring out with the following error:

" _**> [builder 3/3] RUN ./build.sh:

0 0.099 /juno

0 0.102 qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory


Dockerfile:35

33 | COPY /build.sh /build.sh 34 | 35 | >>> RUN ./build.sh 36 | 37 |

ERROR: failed to solve: process "/bin/sh -c ./build.sh" did not complete successfully: exit code: 255" make: * [build] Error 1**_**

Please suggest any resolution. Docker version is 24.0.2.

Thanks Abhishek Mittal

Detailed log below

cd /Users/I589015/go-dev-juno/junodb/docker/build/src/juno; echo git rev-parse --short=8 HEAD 2> /dev/null >> /Users/I589015/go-dev-juno/junodb/docker/build/src/juno/git_revision.txt ; if [ -f /Users/I589015/go-dev-juno/junodb/docker/build/src/juno/third_party/apply_patch.sh ]; then /Users/I589015/go-dev-juno/junodb/docker/build/src/juno/third_party/apply_patch.sh ; fi ; Cloning into 'rocksdb'... remote: Enumerating objects: 122556, done. remote: Counting objects: 100% (607/607), done. remote: Compressing objects: 100% (400/400), done. remote: Total 122556 (delta 292), reused 376 (delta 172), pack-reused 121949 Receiving objects: 100% (122556/122556), 201.69 MiB | 300.00 KiB/s, done. Resolving deltas: 100% (93758/93758), done. Note: switching to '72cf57d4b40e5c809839afc1c62dc13e533b8ec6'.

You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example:

git switch -c

Or undo this operation with:

git switch -

Turn off this advice by setting config variable advice.detachedHead to false

Cloning into 'forked/tecbot/gorocksdb'... remote: Enumerating objects: 928, done. remote: Total 928 (delta 0), reused 0 (delta 0), pack-reused 928 Receiving objects: 100% (928/928), 379.25 KiB | 1016.00 KiB/s, done. Resolving deltas: 100% (573/573), done. Note: switching to '57a309fefefb9c03d6dcc11a0e5705fc4711b46d'.

You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example:

git switch -c

Or undo this operation with:

git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 57a309f Merge pull request #106 from JelteF/patch-1 wget --no-check-certificate https://dl.google.com/go/go1.18.2.linux-amd64.tar.gz -O /Users/I589015/go-dev-juno/junodb/docker/build/go1.18.2.linux-amd64.tar.gz ; --2023-07-09 19:50:22-- https://dl.google.com/go/go1.18.2.linux-amd64.tar.gz Resolving dl.google.com (dl.google.com)... 142.250.71.14 Connecting to dl.google.com (dl.google.com)|142.250.71.14|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 141732542 (135M) [application/x-gzip] Saving to: ‘/Users/I589015/go-dev-juno/junodb/docker/build/go1.18.2.linux-amd64.tar.gz’

/Users/I589015/go-dev-juno/junodb/docke 100%[===============================================================================>] 135.17M 11.0MB/s in 13s

2023-07-09 19:50:35 (10.8 MB/s) - ‘/Users/I589015/go-dev-juno/junodb/docker/build/go1.18.2.linux-amd64.tar.gz’ saved [141732542/141732542]

TODO --

cd build && docker build --build-arg GOLANG_VERSION=1.18.2 --tag \ ghcr.io/paypal/junodb/juno-dev:latest --target juno-dev . [+] Building 4.3s (15/15) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 858B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/ubuntu:20.04 3.4s => [auth] library/ubuntu:pull token for registry-1.docker.io 0.0s => [juno-base 1/4] FROM docker.io/library/ubuntu:20.04@sha256:c9820a44b950956a790c354700c1166a7ec648bc0d215fa438d3a339812f1d01 0.0s => [internal] load build context 0.8s => => transferring context: 13.63MB 0.8s => CACHED [juno-base 2/4] RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -qq install -y cmake g++ make wget 0.0s => CACHED [juno-base 3/4] COPY /go1.18.2.linux-amd64.tar.gz / 0.0s => CACHED [juno-base 4/4] RUN tar xzvf go1.18.2.linux-amd64.tar.gz -C /usr/local/ 0.0s => CACHED [juno-dev-base 1/4] COPY /src/juno/third_party/rocksdb /vendor/src/rocksdb 0.0s => CACHED [juno-dev-base 2/4] WORKDIR /vendor/src/rocksdb 0.0s => CACHED [juno-dev-base 3/4] RUN make static_lib; make INSTALL_PATH=/vendor/rocksdb install-static 0.0s => CACHED [juno-dev 1/2] COPY --from=juno-dev-base /vendor/rocksdb/include /usr/local/include 0.0s => CACHED [juno-dev 2/2] COPY --from=juno-dev-base /vendor/rocksdb/lib /usr/local/lib 0.0s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:3c85febcc62fd66fd243fbb12a22a1123ae9ddd88a7cb5546f68da9452891a83 0.0s => => naming to ghcr.io/paypal/junodb/juno-dev:latest 0.0s cd build && docker build --build-arg GOLANG_VERSION=1.18.2 --tag \ ghcr.io/paypal/junodb/juno-build:latest --target builder . [+] Building 1.9s (16/16) FINISHED => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 858B 0.0s => [internal] load metadata for docker.io/library/ubuntu:20.04 0.5s => [juno-base 1/4] FROM docker.io/library/ubuntu:20.04@sha256:c9820a44b950956a790c354700c1166a7ec648bc0d215fa438d3a339812f1d01 0.0s => [internal] load build context 0.9s => => transferring context: 63.02MB 0.9s => CACHED [juno-base 2/4] RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -qq install -y cmake g++ make wget 0.0s => CACHED [juno-base 3/4] COPY /go1.18.2.linux-amd64.tar.gz / 0.0s => CACHED [juno-base 4/4] RUN tar xzvf go1.18.2.linux-amd64.tar.gz -C /usr/local/ 0.0s => CACHED [juno-dev-base 1/4] COPY /src/juno/third_party/rocksdb /vendor/src/rocksdb 0.0s => CACHED [juno-dev-base 2/4] WORKDIR /vendor/src/rocksdb 0.0s => CACHED [juno-dev-base 3/4] RUN make static_lib; make INSTALL_PATH=/vendor/rocksdb install-static 0.0s => CACHED [juno-dev 1/2] COPY --from=juno-dev-base /vendor/rocksdb/include /usr/local/include 0.0s => CACHED [juno-dev 2/2] COPY --from=juno-dev-base /vendor/rocksdb/lib /usr/local/lib 0.0s => [builder 1/3] COPY /src/juno /juno 0.3s => [builder 2/3] COPY /build.sh /build.sh 0.0s => ERROR [builder 3/3] RUN ./build.sh 0.1s

[builder 3/3] RUN ./build.sh:

0 0.099 /juno

0 0.102 qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory


Dockerfile:35

33 | COPY /build.sh /build.sh 34 | 35 | >>> RUN ./build.sh 36 | 37 |

ERROR: failed to solve: process "/bin/sh -c ./build.sh" did not complete successfully: exit code: 255 make: *** [build] Error 1

amustaque97 commented 1 year ago

Hi @abhishek0909, I'm using macOS and I'm able to successfully set up and run JunoDB, I mentioned in my blog post you can check it here https://amustaque97.github.io/run-junodb-on-macos/

iamrutvik commented 10 months ago

Hi @abhishek0909 were you able to figure out?

iamrutvik commented 10 months ago

Solution to Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory

The main problem was that /lib64/ld-linux-x86-64.so.2 was not supplied with the default image and it would create problems when running it on M1 Apple chip.

I was able to fix it by adding --platform=linux/amd64 in junodb/docker/build/Dockerfile and my build was successful.