|
1 |
| -FROM debian:buster as prep |
| 1 | +FROM debian:bookworm as pigz |
2 | 2 | WORKDIR /build
|
3 |
| -RUN apt-get update && apt-get install -y make gcc zlib1g-dev wget unzip |
| 3 | +RUN apt-get update && apt-get install -y gcc make wget zlib1g-dev |
4 | 4 | RUN wget https://zlib.net/pigz/pigz-2.8.tar.gz && \
|
5 | 5 | tar -xzvf pigz-2.8.tar.gz && \
|
6 | 6 | cd pigz-2.8 && \
|
7 | 7 | make
|
| 8 | + |
| 9 | +FROM debian:bookworm as bowtie2 |
| 10 | +WORKDIR /build |
| 11 | +RUN apt-get update && apt-get install -y unzip wget |
8 | 12 | RUN wget https://github.com/BenLangmead/bowtie2/releases/download/v2.3.2/bowtie2-2.3.2-legacy-linux-x86_64.zip && \
|
9 | 13 | unzip bowtie2-2.3.2-legacy-linux-x86_64.zip && \
|
10 | 14 | mkdir bowtie2 && \
|
11 | 15 | cp bowtie2-2.3.2-legacy/bowtie2* bowtie2
|
12 | 16 |
|
13 |
| -FROM python:3.10-buster as base |
| 17 | +FROM python:3.12-bookworm as build |
14 | 18 | WORKDIR /workflow
|
15 |
| -COPY --from=prep /build/bowtie2/* /usr/local/bin/ |
16 |
| -COPY --from=prep /build/pigz-2.8/pigz /usr/local/bin/pigz |
17 | 19 | RUN curl -sSL https://install.python-poetry.org | python -
|
18 |
| -ENV PATH="/root/.local/bin:${PATH}" |
19 |
| -COPY pyproject.toml poetry.lock utils.py workflow.py VERSION* ./ |
20 |
| -RUN poetry export > requirements.txt |
21 |
| -RUN pip install -r requirements.txt |
| 20 | +ENV PATH="/root/.local/bin:${PATH}" \ |
| 21 | + POETRY_CACHE_DIR='/tmp/poetry_cache' \ |
| 22 | + POETRY_NO_INTERACTION=1 \ |
| 23 | + POETRY_VIRTUALENVS_IN_PROJECT=1 \ |
| 24 | + POETRY_VIRTUALENVS_CREATE=1 |
| 25 | +COPY pyproject.toml poetry.lock ./ |
| 26 | +RUN poetry install --without dev --no-root |
22 | 27 |
|
23 |
| -FROM base as test |
24 |
| -RUN poetry export --with dev > requirements.txt |
25 |
| -RUN pip install -r requirements.txt |
| 28 | +FROM python:3.12-bookworm as base |
| 29 | +WORKDIR /workflow |
| 30 | +ENV VIRTUAL_ENV=/app/.venv \ |
| 31 | + PATH="/workflow/.venv/bin:/opt/fastqc:${PATH}" |
| 32 | +COPY --from=bowtie2 /build/bowtie2/* /usr/local/bin/ |
| 33 | +COPY --from=pigz /build/pigz-2.8/pigz /usr/local/bin/pigz |
| 34 | +COPY --from=build /workflow/.venv /workflow/.venv |
| 35 | +COPY fixtures.py utils.py workflow.py VERSION* ./ |
| 36 | + |
| 37 | +FROM build as test |
| 38 | +COPY --from=bowtie2 /build/bowtie2/* /usr/local/bin/ |
| 39 | +COPY --from=pigz /build/pigz-2.8/pigz /usr/local/bin/pigz |
| 40 | +RUN curl -sSL https://install.python-poetry.org | python - |
| 41 | +ENV PATH="/root/.local/bin:${PATH}" \ |
| 42 | + POETRY_CACHE_DIR='/tmp/poetry_cache' \ |
| 43 | + POETRY_NO_INTERACTION=1 \ |
| 44 | + POETRY_VIRTUALENVS_IN_PROJECT=1 \ |
| 45 | + POETRY_VIRTUALENVS_CREATE=1 |
| 46 | +RUN poetry install |
26 | 47 | COPY tests ./tests
|
| 48 | +COPY fixtures.py utils.py workflow.py ./ |
0 commit comments