blob: 3adc1c6306f48893efdf6f3f772dfcd1ecf3b6ce [file] [log] [blame]
FROM metacpan/metacpan-api AS builder
# Copy repository respecting .dockerignore
COPY . /derekovecs
WORKDIR /derekovecs
RUN apt update && apt -y install cmake libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev libomp-dev
RUN git config --global user.email "korap+docker@ids-mannheim.de" && \
git config --global user.name "Docker"
# Install RocksDB
RUN curl -L https://github.com/facebook/rocksdb/archive/refs/tags/v5.11.3.tar.gz | tar zx && \
cd rocksdb-5.11.3 && \
export PROCS=$(nproc) && \
make -j $PROCS static_lib DISABLE_WARNING_AS_ERROR=1 WARNING_FLAGS=-w && \
make install-static DISABLE_WARNING_AS_ERROR=1 WARNING_FLAGS=-w && \
make -j $PROCS shared_lib DISABLE_WARNING_AS_ERROR=1 WARNING_FLAGS=-w && \
make install-shared DISABLE_WARNING_AS_ERROR=1 WARNING_FLAGS=-w && \
ldconfig && \
cd ..
RUN rm -rf rocksdb-5.11.3
# Install collocatordb
RUN git clone "https://korap.ids-mannheim.de/gerrit/ids-kl/collocatordb" && \
cd collocatordb && \
mkdir -p build && \
cd build && \
cmake .. && \
make && \
make install && \
ldconfig && \
cd ../..
RUN rm -rf collocatordb
# Install dependencies
RUN cpanm https://github.com/Akron/Mojolicious-Plugin-Localize.git && \
cpanm --installdeps .
# Build derekovecs
RUN perl Makefile.PL && \
make && \
make install
ENV MOJO_CONFIG=/config/derekovecs.conf
EXPOSE 3000
ENTRYPOINT [ "hypnotoad", "-f", "script/derekovecs-server" ]