| 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" ] |