mirror of https://github.com/exaloop/codon.git
53 lines
2.1 KiB
Docker
53 lines
2.1 KiB
Docker
FROM exaloop/codon-llvm:15.0.1
|
|
ENV pass="codon-jupyter"
|
|
|
|
# Install dependencies
|
|
RUN yum -y install openssl-devel libsodium-devel libuuid-devel
|
|
|
|
# Build Codon core
|
|
RUN git clone -b develop https://github.com/exaloop/codon /github/codon
|
|
RUN cmake3 -S /github/codon -B /github/codon/build \
|
|
-G Ninja \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_C_COMPILER=/opt/llvm-codon/bin/clang \
|
|
-DCMAKE_CXX_COMPILER=/opt/llvm-codon/bin/clang++ \
|
|
-DLLVM_DIR=/opt/llvm-codon/lib/cmake/llvm \
|
|
-DCMAKE_INSTALL_PREFIX=/opt/codon
|
|
RUN cmake3 --build /github/codon/build
|
|
RUN cmake3 --install /github/codon/build
|
|
|
|
# Build Codon Jupyter support
|
|
RUN cmake3 -S /github/codon/jupyter -B /github/codon/jupyter/build \
|
|
-G Ninja \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_C_COMPILER=/opt/llvm-codon/bin/clang \
|
|
-DCMAKE_CXX_COMPILER=/opt/llvm-codon/bin/clang++ \
|
|
-DLLVM_DIR=/opt/llvm-codon/lib/cmake/llvm \
|
|
-DCODON_PATH=/opt/codon \
|
|
-DOPENSSL_ROOT_DIR=$(openssl version -d | cut -d' ' -f2 | tr -d '"') \
|
|
-DOPENSSL_CRYPTO_LIBRARY=/usr/lib64/libssl.so \
|
|
-DXEUS_USE_DYNAMIC_UUID=ON
|
|
RUN cmake3 --build /github/codon/jupyter/build
|
|
RUN cmake3 --install /github/codon/jupyter/build
|
|
|
|
# Build Seq (bioinformatics plugin) for Codon
|
|
RUN git clone -b develop https://github.com/exaloop/seq /github/seq
|
|
RUN cmake3 -S /github/seq -B /github/seq/build \
|
|
-G Ninja \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_C_COMPILER=/opt/llvm-codon/bin/clang \
|
|
-DCMAKE_CXX_COMPILER=/opt/llvm-codon/bin/clang++ \
|
|
-DLLVM_DIR=/opt/llvm-codon/lib/cmake/llvm \
|
|
-DCODON_PATH=/opt/codon
|
|
RUN cmake3 --build /github/seq/build
|
|
RUN cmake3 --install /github/seq/build
|
|
|
|
# Set up Codon Jupyter kernel
|
|
RUN pip3 install ipywidgets==7.6.5 numpy matplotlib pandas scipy jupyter plotly
|
|
RUN mkdir -p /usr/share/jupyter/kernels/codon
|
|
RUN echo '{"display_name": "Codon", "argv": [ "/opt/codon/bin/codon", "jupyter", "-plugin", "seq", "{connection_file}" ], "language": "python"}' > /usr/share/jupyter/kernels/codon/kernel.json
|
|
|
|
# Launch Jupyter
|
|
ENV CODON_PYTHON="/usr/lib64/libpython3.so"
|
|
CMD jupyter notebook --port=8888 --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token=${pass}
|