|
1 | 1 | FROM riscv64/ubuntu:focal as base
|
2 | 2 |
|
3 | 3 | RUN apt-get update && \
|
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 && \ |
| 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 && \ |
5 | 5 | rm -rf /var/lib/apt/lists/*
|
6 | 6 |
|
7 | 7 | FROM base as ld
|
8 | 8 |
|
9 | 9 | RUN curl -L -O https://ftpmirror.gnu.org/gnu/binutils/binutils-2.38.tar.gz && \
|
10 | 10 | tar -xvzf binutils-2.38.tar.gz && \
|
11 | 11 | cd binutils-2.38 && \
|
12 |
| - ./configure --enable-ld --disable-gas --disable-gmp --disable-gold --disable-gprof --prefix=/opt/ld && \ |
| 12 | + ./configure --enable-ld --disable-gas --disable-gmp --disable-gold --disable-gprof --prefix=/ld/usr && \ |
13 | 13 | make && \
|
14 | 14 | make install && \
|
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 |
| 15 | + ls -la /ld/usr/bin && \ |
| 16 | + ld --version |
28 | 17 |
|
29 | 18 | FROM base as final
|
30 | 19 |
|
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 |
| 20 | +COPY --from=ld /ld/usr /usr |
| 21 | +RUN ls -la /usr/bin && \ |
| 22 | + ld --version |
38 | 23 |
|
39 | 24 | ENV PYENV_ROOT=/root/.pyenv
|
40 | 25 | ENV PATH="$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH"
|
41 | 26 |
|
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/ |
| 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 |
62 | 34 |
|
63 | 35 | ENV PATH="/root/.cargo/bin:${PATH}"
|
64 | 36 | ENV RUST_BACKTRACE=1
|
|
0 commit comments