-
Notifications
You must be signed in to change notification settings - Fork 5
/
Dockerfile
65 lines (52 loc) · 1.99 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
FROM ubuntu:16.04
MAINTAINER Matthew The "matthew.the@tum.de"
LABEL website=https://gitlab.lrz.de/proteomics/picked_group_fdr
LABEL description="Picked group FDR"
LABEL tags="protein grouping"
LABEL documentation=https://gitlab.lrz.de/proteomics/picked_group_fdr
# https://github.com/pyenv/pyenv/wiki/common-build-problems#prerequisites
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get --no-install-recommends -y install \
git ca-certificates build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl && \
rm -rf \
/var/lib/apt/lists/* \
/usr/share/doc \
/usr/share/doc-base \
/usr/share/man \
/usr/share/locale \
/usr/share/zoneinfo
## PYENV FOR MODERN PYTHON
# https://github.com/jprjr/docker-pyenv/blob/master/Dockerfile
# This allows an easy installation
ENV HOME /root
ENV PYENV_ROOT $HOME/.pyenv
ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
RUN git clone https://github.com/pyenv/pyenv.git ~/.pyenv
##### THIS IS JUST FOR BEING INSIDE THE CONTAINER - NOT FOR INSTALLATION
RUN echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
RUN echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
RUN echo 'eval "$(pyenv init -)"' >> ~/.bashrc
WORKDIR /root/
RUN pyenv install 3.8.12
RUN pyenv local 3.8.12
RUN pyenv rehash
# see https://github.com/python-poetry/poetry/issues/1427
ENV LANG C.UTF-8
RUN pip install -U pip
RUN pip install poetry
# urllib3 v2.0 only supports OpenSSL 1.1.1+
RUN pip install urllib3==1.26.6
ADD pyproject.toml /root/pyproject.toml
ADD poetry.lock /root/poetry.lock
ADD README.md /root/
ADD ./picked_group_fdr/ /root/picked_group_fdr
# poetry uses virtualenvs by default -> we want global installation
RUN poetry config virtualenvs.create false
RUN poetry install --only main
# for bootstrapping, see the "bootstrap" rule in the Makefile
ADD Makefile* /root/
ADD config.py /root/
RUN cd /root/