Budowanie boost 1.75.0 z Dockerfile nie działa

0

Cześć,

mam problem ze zbudowaniem obrazu z Dockerfile:

FROM gcc:latest

ARG boost_version=1.75.0
ENV boost_version ${boost_version}
ENV boost_dir boost_1_75_0

RUN apt-get update && apt-get -y upgrade
WORKDIR /builds

## BOOST installation
RUN wget https://dl.bintray.com/boostorg/release/${boost_version}/source/${boost_dir}.tar.gz 
RUN tar xfz ${boost_dir}.tar.gz
RUN rm ${boost_dir}.tar.gz
WORKDIR ${boost_dir}
RUN ./bootstrap.sh --prefix=/usr && ./b2 install
WORKDIR ${boost_dir}/.. 
RUN rm -rf ${boost_dir} 
RUN ldconfig

Wywołanie:

./b2 install zwraca do systemu 1 co przerywa budowanie, ale mimo tego boost sie buduje poprawnie

Jak sobie z tym poradzić "po Bożemu" ?

2

Ktoś zapomniał skopiować logi z informacją o błędzie do pytania.

3

Dobra uruchomiłem u siebie i pierwszy błąd jaki się pojawił to:

...failed gcc.compile.c++ bin.v2/libs/python/build/gcc-10.2.0/release/python-2.7/threading-multi/visibility-hidden/list.o...
gcc.compile.c++ bin.v2/libs/python/build/gcc-10.2.0/release/python-2.7/threading-multi/visibility-hidden/long.o
In file included from ./boost/python/detail/prefix.hpp:13,
                 from ./boost/python/long.hpp:8,
                 from libs/python/src/long.cpp:5:
./boost/python/detail/wrap_python.hpp:57:11: fatal error: pyconfig.h: No such file or directory
   57 | # include <pyconfig.h>
      |           ^~~~~~~~~~~~
compilation terminated.

No to chyba powinno być oczywiste w czym problem.
Nie ma zainstalowanej zależności, by wspierać bindingi do python-a.
Albo doinstalujesz zależność, albo zmienisz konfigurację boost, by nie dostarczał tej funkcjonalności.

Swoją drogą po co budować samemu ręcznie boost? Nie prościej (i taniej) go doinstalować z paczki?

0

Generalnie, tak jak jest napisane pod linkiem z pierwszego wpisu, skrypt b2 zwraca kod 1 zamiast 0. Polecenie RUN z dockera, które zdaje się wywołuje /bin/bash -c "b2 install" zatrzymuje wykonywanie Dockefile.

dowód, że b2 zwraca 1:

...failed updating 54 targets...
...skipped 10 targets...
...updated 17633 targets...
The command '/bin/sh -c ./bootstrap.sh --prefix=/usr && ./b2 install' returned a non-zero code: 1

0

Dziękuję ;)

1

To mi działa:

FROM gcc:latest
  
ARG boost_version=1.75.0
ENV boost_version ${boost_version}
ENV boost_dir boost_1_75_0

RUN apt-get update && apt-get -y upgrade
WORKDIR /builds

## BOOST installation
RUN wget https://dl.bintray.com/boostorg/release/${boost_version}/source/${boost_dir}.tar.gz
RUN tar xfz ${boost_dir}.tar.gz
RUN rm ${boost_dir}.tar.gz
WORKDIR ${boost_dir}
RUN ./bootstrap.sh --prefix=/usr
RUN apt-get install -y python3-dev python2-dev
RUN ./b2 install
WORKDIR ${boost_dir}/..
RUN rm -rf ${boost_dir}
RUN ldconfig

1 użytkowników online, w tym zalogowanych: 0, gości: 1