forked from common-workflow-language/cwltool
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cwltool.Dockerfile
34 lines (26 loc) · 1.33 KB
/
cwltool.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
FROM python:3.12-alpine3.17 as builder
RUN apk add --no-cache git gcc python3-dev libxml2-dev libxslt-dev libc-dev linux-headers
WORKDIR /cwltool
COPY . .
RUN export SETUPTOOLS_SCM_PRETEND_VERSION_FOR_CWLTOOL=$(grep __version__ cwltool/_version.py | awk -F\' '{ print $2 }' | tr -d '\\n') ; \
CWLTOOL_USE_MYPYC=1 MYPYPATH=mypy-stubs pip wheel --no-binary schema-salad \
--wheel-dir=/wheels .[deps] # --verbose
RUN rm /wheels/schema_salad*
RUN pip install "black~=22.0"
# galaxy-util 22.1.x depends on packaging<22, but black 23.x needs packaging>22
RUN SCHEMA_SALAD_USE_MYPYC=1 MYPYPATH=mypy-stubs pip wheel --no-binary schema-salad \
$(grep schema.salad requirements.txt) "black~=22.0" --wheel-dir=/wheels # --verbose
RUN pip install --force-reinstall --no-index --no-warn-script-location \
--root=/pythonroot/ /wheels/*.whl
# --force-reinstall to install our new mypyc compiled schema-salad package
FROM python:3.12-alpine3.17 as module
LABEL maintainer [email protected]
RUN apk add --no-cache docker nodejs 'graphviz<8' libxml2 libxslt
COPY --from=builder /pythonroot/ /
FROM python:3.12-alpine3.17
LABEL maintainer [email protected]
RUN apk add --no-cache docker nodejs 'graphviz<8' libxml2 libxslt
COPY --from=builder /pythonroot/ /
COPY cwltool-in-docker.sh /cwltool-in-docker.sh
WORKDIR /error
ENTRYPOINT ["/cwltool-in-docker.sh"]