poco.dockerfile 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. FROM buildpack-deps:xenial
  2. RUN apt-get update -yqq && apt-get install -yqq software-properties-common unzip cmake
  3. RUN apt-get install -yqq g++-4.8 libjson0-dev
  4. RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50
  5. ENV POCO_VERSION 1.6.1
  6. ENV POCO_HOME /poco
  7. WORKDIR ${POCO_HOME}
  8. RUN wget https://pocoproject.org/releases/poco-${POCO_VERSION}/poco-${POCO_VERSION}-all.zip
  9. RUN unzip poco-${POCO_VERSION}-all.zip
  10. RUN mv ./poco-${POCO_VERSION}-all/* ./
  11. RUN ./configure --no-tests --no-samples
  12. RUN make --quiet PageCompiler-libexec XML-libexec JSON-libexec
  13. ENV LD_LIBRARY_PATH ${POCO_HOME}/lib/Linux/x86_64
  14. COPY benchmark.cpp benchmark.cpp
  15. RUN g++-4.8 \
  16. -O3 \
  17. -DNDEBUG \
  18. -std=c++0x \
  19. -o \
  20. poco \
  21. benchmark.cpp \
  22. -I${POCO_HOME}/Foundation/include \
  23. -I${POCO_HOME}/Util/include \
  24. -I${POCO_HOME}/Net/include \
  25. -L${POCO_HOME}/lib/Linux/x86_64 \
  26. -lPocoNet \
  27. -lPocoUtil \
  28. -lPocoFoundation \
  29. -lPocoXML \
  30. -lPocoJSON
  31. EXPOSE 8080
  32. CMD ./poco 8080 $(nproc)