Skip to content

Commit 3dd40a2

Browse files
authored
Merge pull request #70 from Chia-Network/sqlite_for_risc
build sqlite for risc python installs
2 parents 14c66a3 + fcff9a3 commit 3dd40a2

File tree

1 file changed

+42
-14
lines changed

1 file changed

+42
-14
lines changed

ubuntu-22.04-risc/Dockerfile

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,64 @@
11
FROM riscv64/ubuntu:focal as base
22

33
RUN apt-get update && \
4-
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 && \
4+
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 && \
55
rm -rf /var/lib/apt/lists/*
66

77
FROM base as ld
88

99
RUN curl -L -O https://ftpmirror.gnu.org/gnu/binutils/binutils-2.38.tar.gz && \
1010
tar -xvzf binutils-2.38.tar.gz && \
1111
cd binutils-2.38 && \
12-
./configure --enable-ld --disable-gas --disable-gmp --disable-gold --disable-gprof --prefix=/ld/usr && \
12+
./configure --enable-ld --disable-gas --disable-gmp --disable-gold --disable-gprof --prefix=/opt/ld && \
1313
make && \
1414
make install && \
15-
ls -la /ld/usr/bin && \
16-
ld --version
15+
tree /opt && \
16+
/opt/ld/bin/ld --version
17+
18+
FROM base as sqlite
19+
20+
RUN curl -L -O https://sqlite.org/2022/sqlite-autoconf-3400100.tar.gz && \
21+
tar -xvzf sqlite-autoconf-3400100.tar.gz && \
22+
cd sqlite-autoconf-3400100 && \
23+
CFLAGS="-DSQLITE_MAX_VARIABLE_NUMBER=500000" ./configure --prefix=/opt/sqlite3 && \
24+
make && \
25+
make install && \
26+
tree /opt && \
27+
/opt/sqlite3/bin/sqlite3 -version
1728

1829
FROM base as final
1930

20-
COPY --from=ld /ld/usr /usr
21-
RUN ls -la /usr/bin && \
22-
ld --version
31+
COPY --from=ld /opt/ld /usr
32+
33+
COPY --from=sqlite /opt/sqlite3 /opt/sqlite3
34+
35+
RUN tree /opt && \
36+
ld --version && \
37+
/opt/sqlite3/bin/sqlite3 -version
2338

2439
ENV PYENV_ROOT=/root/.pyenv
2540
ENV PATH="$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH"
2641

27-
RUN curl https://pyenv.run | bash && \
28-
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.8 && \
29-
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.9 && \
30-
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.10 && \
31-
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.11 && \
32-
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --skip-existing 3.12 && \
33-
pyenv global 3.12
42+
RUN curl https://pyenv.run | bash
43+
44+
ARG PYTHON_CONFIGURE_OPTS="--enable-shared"
45+
ARG LDFLAGS="-Wl,-rpath,/opt/sqlite3/lib -L/opt/sqlite3/lib -lsqlite3"
46+
ARG CPPFLAGS="-I/opt/sqlite3/include"
47+
48+
RUN pyenv install 3.8
49+
RUN pyenv install 3.9
50+
RUN pyenv install 3.10
51+
RUN pyenv install 3.11
52+
RUN pyenv install 3.12
53+
54+
RUN pyenv global 3.12 3.11 3.10 3.9 3.8
55+
56+
# make sure sqlite is loaded from the expected path
57+
RUN ldd $(python3.8 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/
58+
RUN ldd $(python3.9 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/
59+
RUN ldd $(python3.10 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/
60+
RUN ldd $(python3.11 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/
61+
RUN ldd $(python3.12 -c 'import _sqlite3; print(_sqlite3.__file__)') | grep /opt/sqlite3/lib/
3462

3563
ENV PATH="/root/.cargo/bin:${PATH}"
3664
ENV RUST_BACKTRACE=1

0 commit comments

Comments
 (0)