diff --git a/ubuntu-22.04-risc/Dockerfile b/ubuntu-22.04-risc/Dockerfile index 169ee90..2ab3f4d 100644 --- a/ubuntu-22.04-risc/Dockerfile +++ b/ubuntu-22.04-risc/Dockerfile @@ -1,7 +1,7 @@ FROM riscv64/ubuntu:focal as base RUN apt-get update && \ - DEBIAN_FRONTEND="noninteractive" apt-get install -y build-essential cmake curl wget git make pkg-config libgmp-dev libboost-dev libssl-dev zlib1g zlib1g-dev libreadline-dev libffi-dev && \ + DEBIAN_FRONTEND="noninteractive" apt-get install -y tree build-essential cmake curl wget git make pkg-config libgmp-dev libboost-dev libssl-dev zlib1g zlib1g-dev libreadline-dev libffi-dev && \ rm -rf /var/lib/apt/lists/* FROM base as ld @@ -9,28 +9,56 @@ FROM base as ld RUN curl -L -O https://ftpmirror.gnu.org/gnu/binutils/binutils-2.38.tar.gz && \ tar -xvzf binutils-2.38.tar.gz && \ cd binutils-2.38 && \ - ./configure --enable-ld --disable-gas --disable-gmp --disable-gold --disable-gprof --prefix=/ld/usr && \ + ./configure --enable-ld --disable-gas --disable-gmp --disable-gold --disable-gprof --prefix=/opt/ld && \ make && \ make install && \ - ls -la /ld/usr/bin && \ - ld --version + tree /opt && \ + /opt/ld/bin/ld --version + +FROM base as sqlite + +RUN curl -L -O https://sqlite.org/2022/sqlite-autoconf-3400100.tar.gz && \ + tar -xvzf sqlite-autoconf-3400100.tar.gz && \ + cd sqlite-autoconf-3400100 && \ + CFLAGS="-DSQLITE_MAX_VARIABLE_NUMBER=500000" ./configure --prefix=/opt/sqlite3 && \ + make && \ + make install && \ + tree /opt && \ + /opt/sqlite3/bin/sqlite3 -version FROM base as final -COPY --from=ld /ld/usr /usr -RUN ls -la /usr/bin && \ - ld --version +COPY --from=ld /opt/ld /usr + +COPY --from=sqlite /opt/sqlite3 /opt/sqlite3 + +RUN tree /opt && \ + ld --version && \ + /opt/sqlite3/bin/sqlite3 -version ENV PYENV_ROOT=/root/.pyenv ENV PATH="$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH" -RUN curl https://pyenv.run | bash && \ - PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.8 && \ - PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.9 && \ - PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.10 && \ - PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.11 && \ - PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.12 && \ - pyenv global 3.12 +RUN curl https://pyenv.run | bash + +ARG PYTHON_CONFIGURE_OPTS="--enable-shared" +ARG LDFLAGS="-Wl,-rpath,/opt/sqlite3/lib -L/opt/sqlite3/lib -lsqlite3" +ARG CPPFLAGS="-I/opt/sqlite3/include" + +RUN pyenv install 3.8 +RUN pyenv install 3.9 +RUN pyenv install 3.10 +RUN pyenv install 3.11 +RUN pyenv install 3.12 + +RUN pyenv global 3.12 3.11 3.10 3.9 3.8 + +# make sure sqlite is loaded from the expected path +RUN ldd $(python3.8 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/ +RUN ldd $(python3.9 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/ +RUN ldd $(python3.10 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/ +RUN ldd $(python3.11 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/ +RUN ldd $(python3.12 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/ ENV PATH="/root/.cargo/bin:${PATH}" ENV RUST_BACKTRACE=1