poco.dockerfile 984 B

12345678910111213141516171819202122232425262728293031323334353637383940
  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 curl -sL http://pocoproject.org/releases/poco-${POCO_VERSION}/poco-${POCO_VERSION}-all.tar.gz | tar xz --strip-components=1
  9. RUN ./configure --no-tests --no-samples
  10. RUN make --quiet PageCompiler-libexec XML-libexec JSON-libexec
  11. ENV LD_LIBRARY_PATH ${POCO_HOME}/lib/Linux/x86_64
  12. COPY benchmark.cpp benchmark.cpp
  13. RUN g++-4.8 \
  14. -O3 \
  15. -DNDEBUG \
  16. -std=c++0x \
  17. -o \
  18. poco \
  19. benchmark.cpp \
  20. -I${POCO_HOME}/Foundation/include \
  21. -I${POCO_HOME}/Util/include \
  22. -I${POCO_HOME}/Net/include \
  23. -L${POCO_HOME}/lib/Linux/x86_64 \
  24. -lPocoNet \
  25. -lPocoUtil \
  26. -lPocoFoundation \
  27. -lPocoXML \
  28. -lPocoJSON
  29. EXPOSE 8080
  30. CMD ./poco 8080 $(nproc)