cppcms-postgres.dockerfile 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. FROM ubuntu:16.04
  2. RUN apt-get update
  3. RUN apt-get install -y software-properties-common build-essential curl locales wget unzip git \
  4. libmysqlclient-dev libpq-dev \
  5. libpcre3 libpcre3-dev \
  6. libssl-dev libcurl4-openssl-dev \
  7. zlib1g-dev \
  8. libreadline6-dev \
  9. libbz2-dev \
  10. libxslt-dev libgdbm-dev ncurses-dev \
  11. libffi-dev libtool bison libevent-dev \
  12. libgstreamer-plugins-base0.10-0 libgstreamer0.10-0 \
  13. liborc-0.4-0 libgnutls-dev \
  14. libjson0-dev libmcrypt-dev libicu-dev \
  15. re2c libnuma-dev
  16. RUN locale-gen en_US.UTF-8
  17. ENV LANG en_US.UTF-8
  18. ENV LANGUAGE en_US:en
  19. ENV LC_ALL en_US.UTF-8
  20. ENV DEBIAN_FRONTEND noninteractive
  21. RUN apt install -yqq libgcrypt11-dev cmake python nginx
  22. WORKDIR /installs
  23. #http://cppcms.com/wikipp/en/page/cppcms_1x_build
  24. #note '-rc1' in the url
  25. ENV CPPCMS_VERSION=1.1.1
  26. ENV BACKNAME=cppcms
  27. ENV CPPCMS_HOME=/installs/$BACKNAME-$CPPCMS_VERSION
  28. ENV CPPCMSROOT=${CPPCMS_HOME}-install
  29. RUN wget -q https://download.sourceforge.net/project/cppcms/$BACKNAME/$CPPCMS_VERSION-rc1/$BACKNAME-$CPPCMS_VERSION.tar.bz2
  30. RUN tar xf $BACKNAME-$CPPCMS_VERSION.tar.bz2
  31. RUN cd $BACKNAME-$CPPCMS_VERSION && \
  32. mkdir build && \
  33. cd build && \
  34. cmake -DCMAKE_INSTALL_PREFIX=${CPPCMSROOT} .. && \
  35. make && make install
  36. ENV CPPCMS_HOME=${CPPCMSROOT}
  37. ENV CPPDB_VERSION=0.3.1
  38. ENV BACKNAME=cppdb
  39. ENV CPPDB_HOME=/installs/$BACKNAME-$CPPDB_VERSION
  40. ENV CPPDBROOT=${CPPDB_HOME}-install
  41. RUN wget -q https://download.sourceforge.net/project/cppcms/$BACKNAME/$CPPDB_VERSION/$BACKNAME-$CPPDB_VERSION.tar.bz2
  42. RUN tar xf $BACKNAME-$CPPDB_VERSION.tar.bz2
  43. RUN cd $BACKNAME-$CPPDB_VERSION && \
  44. mkdir build && cd build && \
  45. cmake -DCMAKE_INSTALL_PREFIX=${CPPDBROOT} .. && \
  46. make && make install
  47. ENV CPPDB_HOME=${CPPDBROOT}
  48. ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${CPPCMS_HOME}/lib:${CPPDB_HOME}/lib
  49. WORKDIR /cppcms
  50. COPY src src
  51. COPY config-nginx-postgresql.json config-nginx-postgresql.json
  52. COPY Makefile Makefile
  53. COPY nginx.conf nginx.conf
  54. RUN make
  55. CMD nginx -c /cppcms/nginx.conf && ./mycppcms -c config-nginx-postgresql.json