| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- FROM ubuntu:jammy
- ENV DEBIAN_FRONTEND=noninteractive DISTR=jammy arch=x86_64
- # toolchain stuff
- ARG cmakever="3.31.2"
- RUN apt-get update && apt-get install -y --no-install-recommends \
- curl \
- git \
- build-essential \
- ninja-build \
- flex \
- bison \
- && rm -rf /var/lib/apt/lists/* \
- && git config --global --add safe.directory '*' \
- && cd / && curl -k -L https://github.com/Kitware/CMake/releases/download/v${cmakever}/cmake-${cmakever}-linux-${arch}.tar.gz | tar -zx
- ENV PATH=$PATH:/cmake-${cmakever}-linux-${arch}/bin CTEST_CMAKE_GENERATOR=Ninja CMAKE_GENERATOR=Ninja
- # build dependencies
- ARG boostminorver=80
- RUN apt-get update && apt-get install -y --no-install-recommends \
- libmysqlclient-dev \
- libexpat-dev \
- libpq-dev \
- unixodbc-dev \
- libjemalloc-dev \
- && rm -rf /var/lib/apt/lists/* \
- && cd / && curl -k -L https://archives.boost.io/release/1.${boostminorver}.0/source/boost_1_${boostminorver}_0.tar.gz | tar -zx \
- && cd boost_1_${boostminorver}_0 \
- && ./bootstrap.sh \
- && ./b2 install --with-context --with-system --with-filesystem \
- && cd - && rm -rf /boost_1_${boostminorver}_0
- # llvm
- ENV llvm=16
- RUN apt-get update && apt-get install -y --no-install-recommends \
- gnupg \
- ca-certificates \
- && curl -k -L https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
- && echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-${llvm} main" >> /etc/apt/sources.list.d/llvm.list \
- && apt-get update \
- && apt-get install -y --no-install-recommends \
- clang-$llvm \
- && rm -rf /var/lib/apt/lists/*
- ENV PATH=$PATH:/usr/lib/llvm-${llvm}/bin CC=/usr/bin/clang-${llvm} CXX=/usr/bin/clang++-${llvm}
- # vcpkg
- ENV VCPKG_ROOT=/vcpkg VCPKG_DISABLE_METRICS=1 VCPKG_FORCE_SYSTEM_BINARIES=1 PATH=/vcpkg:$PATH
- RUN apt-get update && apt-get install -y --no-install-recommends \
- curl \
- zip \
- unzip \
- tar \
- pkg-config \
- && rm -rf /var/lib/apt/lists/* \
- && cd / && git clone https://github.com/microsoft/vcpkg.git \
- && cd vcpkg \
- && ./bootstrap-vcpkg.sh \
- && vcpkg install vcpkg-cmake vcpkg-cmake-config vcpkg-cmake-get-vars
- # staff for test suite
- RUN apt-get update && apt-get install -y --no-install-recommends \
- mysql-server \
- php \
- php-mysql \
- php-curl \
- php-xml \
- python3 \
- && rm -rf /var/lib/apt/lists/* \
- && mkdir -p /var/run/mysqld \
- && { mysqld & } && sleep 5 \
- && mysql -e "CREATE USER test@localhost; CREATE DATABASE test; GRANT ALL PRIVILEGES ON test.* TO test@localhost;" \
- && mysqladmin shutdown
- # latest valgrind via linuxbrew
- RUN NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" \
- && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" \
- && brew install valgrind \
- && ln -s /home/linuxbrew/.linuxbrew/bin/valgrind /usr/bin/ \
- && ln -s /home/linuxbrew/.linuxbrew/include/valgrind /usr/include/ \
- && apt-get update && apt-get install -y --no-install-recommends \
- libc6-dbg \
- && rm -rf /var/lib/apt/lists/*
- # testing environment
- RUN curl -O -k https://repo.manticoresearch.com/manticore-dev-repo.noarch.deb \
- && dpkg -i manticore-dev-repo.noarch.deb \
- && rm manticore-dev-repo.noarch.deb \
- && apt-get update && apt-get install -y --no-install-recommends \
- manticore-tzdata \
- && rm -rf /var/lib/apt/lists/* \
- && cd / && curl -k -L https://dev.mysql.com/get/Downloads/Connector-ODBC/8.3/mysql-connector-odbc-8.3.0-linux-glibc2.28-x86-64bit.tar.gz | tar -zx \
- && mkdir -p /aot && cd /aot \
- && curl -k -L https://repo.manticoresearch.com/repository/morphology/de.pak.tar.xz | tar -Jx \
- && curl -k -L https://repo.manticoresearch.com/repository/morphology/en.pak.tar.xz | tar -Jx \
- && curl -k -L https://repo.manticoresearch.com/repository/morphology/ru.pak.tar.xz | tar -Jx
- ADD --link sphinx /root/.sphinx
- ADD --link entry_point.sh /
- VOLUME [ "/work" ]
- WORKDIR /work
- ENTRYPOINT ["/bin/bash", "/entry_point.sh"]
- CMD []
- # docker build -t manticore_valgrind:jammy .
- # docker image tag manticore_valgrind:jammy manticoresearch/manticore_valgrind:jammy
- # docker push manticoresearch/manticore_valgrind:jammy
|