mirror of
https://github.com/lancedb/lancedb.git
synced 2026-01-04 02:42:57 +00:00
Building with Node 16 produced this error: ``` npm ERR! code ENOENT npm ERR! syscall chmod npm ERR! path /io/nodejs/node_modules/apache-arrow-15/bin/arrow2csv.cjs npm ERR! errno -2 npm ERR! enoent ENOENT: no such file or directory, chmod '/io/nodejs/node_modules/apache-arrow-15/bin/arrow2csv.cjs' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent ``` [CI Failure](https://github.com/lancedb/lancedb/actions/runs/10117131772/job/27981475770). This looks like it is https://github.com/apache/arrow/issues/43341 Upgrading to Node 18 makes this goes away. Since Node 18 requires glibc >= 2_28, we had to upgrade the manylinux version we are using. This is fine since we already state a minimum Node version of 18. This also upgrades the openssl version we bundle, as well as consolidates the build files.
32 lines
1.1 KiB
Docker
32 lines
1.1 KiB
Docker
# Many linux dockerfile with Rust, Node, and Lance dependencies installed.
|
|
# This container allows building the node modules native libraries in an
|
|
# environment with a very old glibc, so that we are compatible with a wide
|
|
# range of linux distributions.
|
|
ARG ARCH=x86_64
|
|
|
|
FROM quay.io/pypa/manylinux_2_28_${ARCH}
|
|
|
|
ARG ARCH=x86_64
|
|
ARG DOCKER_USER=default_user
|
|
|
|
# Install static openssl
|
|
COPY install_openssl.sh install_openssl.sh
|
|
RUN ./install_openssl.sh ${ARCH} > /dev/null
|
|
|
|
# Protobuf is also installed as root.
|
|
COPY install_protobuf.sh install_protobuf.sh
|
|
RUN ./install_protobuf.sh ${ARCH}
|
|
|
|
ENV DOCKER_USER=${DOCKER_USER}
|
|
# Create a group and user, but only if it doesn't exist
|
|
RUN echo ${ARCH} && id -u ${DOCKER_USER} >/dev/null 2>&1 || adduser --user-group --create-home --uid ${DOCKER_USER} build_user
|
|
|
|
# We switch to the user to install Rust and Node, since those like to be
|
|
# installed at the user level.
|
|
USER ${DOCKER_USER}
|
|
|
|
COPY prepare_manylinux_node.sh prepare_manylinux_node.sh
|
|
RUN cp /prepare_manylinux_node.sh $HOME/ && \
|
|
cd $HOME && \
|
|
./prepare_manylinux_node.sh ${ARCH}
|