ffead-cpp-seastar-base.dockerfile 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. FROM sumeetchhetri/ffead-cpp-5.0-base:5.3
  2. #seastar needs ubuntu 20 and boost >= 1.66
  3. WORKDIR ${IROOT}
  4. ENV DEBIAN_FRONTEND noninteractive
  5. RUN rm -f /usr/local/lib/libffead-* /usr/local/lib/libte_benc* /usr/local/lib/libinter.so /usr/local/lib/libdinter.so && \
  6. ln -s ${IROOT}/ffead-cpp-5.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so && \
  7. ln -s ${IROOT}/ffead-cpp-5.0/lib/libte_benchmark_um_pq.so /usr/local/lib/libte_benchmark_um_pq.so && \
  8. ln -s ${IROOT}/ffead-cpp-5.0/lib/libte_benchmark_um_mgr.so /usr/local/lib/libte_benchmark_um_mgr.so && \
  9. ln -s ${IROOT}/ffead-cpp-5.0/lib/libte_benchmark_um_pq_async.so /usr/local/lib/libte_benchmark_um_pq_async.so && \
  10. ln -s ${IROOT}/ffead-cpp-5.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so && \
  11. ln -s ${IROOT}/ffead-cpp-5.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so && \
  12. ln -s ${IROOT}/ffead-cpp-5.0/lib/libinter.so /usr/local/lib/libinter.so && \
  13. ln -s ${IROOT}/ffead-cpp-5.0/lib/libdinter.so /usr/local/lib/libdinter.so && \
  14. ldconfig
  15. ENV FFEAD_CPP_PATH=${IROOT}/ffead-cpp-5.0
  16. ENV LD_LIBRARY_PATH=${IROOT}/:${IROOT}/lib:${FFEAD_CPP_PATH}/lib:/usr/local/lib:$LD_LIBRARY_PATH
  17. #seastar need hwloc 2
  18. RUN cd /tmp && wget -q https://github.com/open-mpi/hwloc/releases/download/hwloc-2.1.0/hwloc-2.1.0.tar.gz && \
  19. tar xvf hwloc-2.1.0.tar.gz && cd hwloc-2.1.0 && ./configure --prefix=/usr/local/ && make install
  20. RUN rm -rf /tmp/hwloc-2.1.0
  21. RUN apt update -y && apt install -y pkg-config liblzma-dev libunistring-dev libudev-dev bridge-utils \
  22. net-tools iproute2 kmod sudo qemu-kvm libvirt-clients libvirt-daemon-system
  23. RUN sudo adduser $(whoami) libvirt
  24. RUN sudo adduser $(whoami) kvm
  25. RUN sudo adduser $(whoami) libvirt-qemu
  26. RUN sudo adduser $(whoami) libvirt-dnsmasq
  27. #RUN sudo chown $(whoami) /dev/kvm
  28. #RUN sudo chmod 777 /dev/kvm
  29. #seastar needs gcc-10
  30. RUN git clone https://github.com/sumeetchhetri/seastar && cd seastar && git checkout for_ffead
  31. RUN cd seastar && chmod +x *.sh && apt update -y && ./install-dependencies.sh && apt remove -y libfmt-dev && \
  32. ./configure.py --mode=release --cook fmt && ./configure.py --mode=release --prefix=/usr/local
  33. RUN cd seastar && ninja -C build/release install && cp build/release/_cooking/installed/lib/libfmt.a /usr/local/lib/ && \
  34. cp -rf build/release/_cooking/installed/include/fmt /usr/local/include/ && cp apps/lib/stop_signal.hh /${IROOT}/lang-server-backends/c++/seastar && \
  35. cd ${IROOT} && rm -rf ${IROOT}/seastar && mkdir -p ${IROOT}/seastar/build/release/_cooking/installed/lib/ && \
  36. cp /usr/local/lib/libfmt.a ${IROOT}/seastar/build/release/_cooking/installed/lib/
  37. WORKDIR ${IROOT}/lang-server-backends/c++/seastar
  38. #RUN g++ -g SeastarFfeadCpp.cpp -I/home/mavuser/ffead-cpp-5.0/include/ -I/usr/include/libmongoc-1.0 \
  39. # -I/usr/include/libbson-1.0 -I. -I/usr/local/include $(pkg-config --libs --cflags --static seastar) -lffead-framework \
  40. # -lffead-modules -o ffead-cpp-seastar
  41. RUN g++ SeastarFfeadCpp.cpp -O3 -I. $(pkg-config --libs --cflags --static seastar) -lffead-framework -o ffead-cpp-seastar
  42. RUN chmod +x run.sh
  43. WORKDIR /
  44. CMD ./run_ffead.sh ffead-cpp-5.0 seastar