|
@@ -1,6 +1,88 @@
|
|
|
-FROM techempower/wt-base:0.1
|
|
|
+FROM ubuntu:16.04
|
|
|
|
|
|
-COPY ./ ./
|
|
|
+RUN apt-get update
|
|
|
+
|
|
|
+RUN apt-get install -qqy software-properties-common build-essential curl locales wget unzip git \
|
|
|
+ libmysqlclient-dev libpq-dev \
|
|
|
+ libpcre3 libpcre3-dev \
|
|
|
+ libssl-dev libcurl4-openssl-dev \
|
|
|
+ zlib1g-dev \
|
|
|
+ libreadline6-dev \
|
|
|
+ libbz2-dev \
|
|
|
+ libxslt-dev libgdbm-dev ncurses-dev \
|
|
|
+ libffi-dev libtool bison libevent-dev \
|
|
|
+ libgstreamer-plugins-base0.10-0 libgstreamer0.10-0 \
|
|
|
+ liborc-0.4-0 libgnutls-dev \
|
|
|
+ libjson0-dev libmcrypt-dev libicu-dev \
|
|
|
+ re2c libnuma-dev
|
|
|
+
|
|
|
+RUN locale-gen en_US.UTF-8
|
|
|
+ENV LANG en_US.UTF-8
|
|
|
+ENV LANGUAGE en_US:en
|
|
|
+ENV LC_ALL en_US.UTF-8
|
|
|
+ENV DEBIAN_FRONTEND noninteractive
|
|
|
+
|
|
|
+RUN add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
|
|
+RUN apt-get -yq update
|
|
|
+RUN apt-get install -qqy gcc-6 g++-6
|
|
|
+
|
|
|
+RUN apt-add-repository --yes ppa:george-edison55/cmake-3.x
|
|
|
+RUN apt-get update -qq
|
|
|
+RUN apt-get install -qqy cmake
|
|
|
+
|
|
|
+ENV WT_VERSION 4.0.2
|
|
|
+ENV BOOST_ROOT /boost
|
|
|
+ENV BOOST_INC ${BOOST_ROOT}/include
|
|
|
+ENV BOOST_LIB ${BOOST_ROOT}/lib
|
|
|
+ENV WT_ROOT /wt
|
|
|
+ENV WT_LIB ${WT_ROOT}/lib
|
|
|
+ENV WT_INC ${WT_ROOT}/include
|
|
|
+ENV LD_LIBRARY_PATH ${BOOST_LIB}:${WT_LIB}:${LD_LIBRARY_PATH}
|
|
|
+ENV CPLUS_INCLUDE_PATH /usr/include/postgresql:/usr/include/postgresql/9.3/server:${CPLUS_INCLUDE_PATH}
|
|
|
+
|
|
|
+WORKDIR ${WT_ROOT}
|
|
|
+COPY benchmark.cpp benchmark.cpp
|
|
|
+COPY fortunes.xml fortunes.xml
|
|
|
+COPY wt_config.xml wt_config.xml
|
|
|
+
|
|
|
+# Build boost_thread, boost_system, boost_filesystem and boost_program_options
|
|
|
+RUN wget -q https://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_65_1.tar.gz
|
|
|
+RUN tar xf boost_1_65_1.tar.gz
|
|
|
+RUN cd boost_1_65_1 && \
|
|
|
+ ./bootstrap.sh && \
|
|
|
+ ./b2 \
|
|
|
+ -d0 \
|
|
|
+ toolset=gcc-6 \
|
|
|
+ variant=release \
|
|
|
+ link=static \
|
|
|
+ cxxflags="-std=c++14 -march=native" \
|
|
|
+ cflags="-march=native" \
|
|
|
+ --prefix=${BOOST_ROOT} \
|
|
|
+ --with-system \
|
|
|
+ --with-thread \
|
|
|
+ --with-program_options \
|
|
|
+ --with-filesystem \
|
|
|
+ install
|
|
|
+
|
|
|
+RUN wget -q https://github.com/emweb/wt/archive/${WT_VERSION}.tar.gz
|
|
|
+RUN mv ${WT_VERSION}.tar.gz wt-${WT_VERSION}.tar.gz
|
|
|
+RUN tar xf wt-${WT_VERSION}.tar.gz
|
|
|
+
|
|
|
+RUN cd wt-$WT_VERSION && \
|
|
|
+ mkdir -p build && \
|
|
|
+ cd build && \
|
|
|
+ cmake .. -DCMAKE_CXX_STANDARD=14 -DCMAKE_BUILD_TYPE=Release \
|
|
|
+ -DBOOST_PREFIX=${BOOST_ROOT} \
|
|
|
+ -DCMAKE_INSTALL_PREFIX=${WT_ROOT} -DCONFIGDIR=${WT_ROOT}/etc \
|
|
|
+ -DCMAKE_C_COMPILER=$(which gcc-6) \
|
|
|
+ -DCMAKE_CXX_COMPILER=$(which g++-6) -DDESTDIR=${WT_ROOT} \
|
|
|
+ -DWEBUSER=$(id -u -n) -DWEBGROUP=$(id -g -n) \
|
|
|
+ -DENABLE_SSL=OFF -DHTTP_WITH_ZLIB=OFF \
|
|
|
+ -DCMAKE_C_FLAGS_RELEASE="-O3 -march=native -DNDEBUG" \
|
|
|
+ -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -DNDEBUG" \
|
|
|
+ -DBUILD_TESTS=OFF -DENABLE_LIBWTTEST=OFF \
|
|
|
+ -DSHARED_LIBS=OFF >/dev/null && \
|
|
|
+ make && make install
|
|
|
|
|
|
RUN g++-6 \
|
|
|
-std=c++14 \
|
|
@@ -21,6 +103,6 @@ RUN g++-6 \
|
|
|
-lpthread \
|
|
|
-lpq
|
|
|
|
|
|
-ENV DBHOST=tfb-database
|
|
|
+ENV DBHOST tfb-database
|
|
|
|
|
|
CMD ./te-benchmark-pg.wt -c wt_config.xml -t $(nproc) --docroot . --approot . --http-listen 0.0.0.0:8080 --accesslog=- --no-compression
|