|
a |
|
b/tensorflow.Dockerfile |
|
|
1 |
# syntax=docker/dockerfile:1 |
|
|
2 |
FROM tensorflow/tensorflow:2.11.1-gpu |
|
|
3 |
ARG DEBIAN_FRONTEND=noninteractive |
|
|
4 |
ENV TZ=Etc/UTC |
|
|
5 |
|
|
|
6 |
# Install necessary packages |
|
|
7 |
RUN apt update && \ |
|
|
8 |
apt install -y liblapack-dev libblas-dev libgl1-mesa-glx libsm6 libxext6 wget vim g++ pkg-config libglib2.0-dev expat libexpat-dev libexif-dev libtiff-dev libgsf-1-dev openslide-tools libopenjp2-tools libpng-dev libtiff5-dev libjpeg-turbo8-dev libopenslide-dev python3-tk python3-dev && \ |
|
|
9 |
sed -i '/^#\sdeb-src /s/^# *//' "/etc/apt/sources.list" && \ |
|
|
10 |
apt update && \ |
|
|
11 |
mkdir /scripts |
|
|
12 |
|
|
|
13 |
# Build libvips 8.12 from source [slideflow requires 8.9+, latest deb in Ubuntu 18.04 is 8.4] |
|
|
14 |
RUN apt install build-essential devscripts -y && \ |
|
|
15 |
mkdir /libvips && \ |
|
|
16 |
cd /libvips && \ |
|
|
17 |
wget https://github.com/libvips/libvips/releases/download/v8.12.2/vips-8.12.2.tar.gz && \ |
|
|
18 |
tar zxf vips-8.12.2.tar.gz && \ |
|
|
19 |
cd /libvips/vips-8.12.2 && \ |
|
|
20 |
./configure && make && make install |
|
|
21 |
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib |
|
|
22 |
ENV SF_VIPS_VERSION=8.12.2 |
|
|
23 |
|
|
|
24 |
# Repair pixman |
|
|
25 |
WORKDIR "/scripts" |
|
|
26 |
RUN wget https://raw.githubusercontent.com/slideflow/slideflow/2.0.1/scripts/pixman_repair.sh && \ |
|
|
27 |
chmod +x pixman_repair.sh && \ |
|
|
28 |
./pixman_repair.sh |
|
|
29 |
|
|
|
30 |
# Install slideflow & download scripts |
|
|
31 |
ENV SF_BACKEND=tensorflow |
|
|
32 |
RUN pip3 install --upgrade setuptools pip wheel |
|
|
33 |
RUN pip3 install slideflow[cucim]==3.0.2 cupy-cuda11x tensorflow_datasets tensorflow_probability==0.17.* versioneer && \ |
|
|
34 |
wget https://raw.githubusercontent.com/slideflow/slideflow/3.0.2/scripts/test.py && \ |
|
|
35 |
wget https://raw.githubusercontent.com/slideflow/slideflow/3.0.2/scripts/slideflow-studio.py && \ |
|
|
36 |
wget https://raw.githubusercontent.com/slideflow/slideflow/3.0.2/scripts/run_project.py && \ |
|
|
37 |
wget https://raw.githubusercontent.com/slideflow/slideflow/3.0.2/scripts/qupath_roi.groovy && \ |
|
|
38 |
wget https://raw.githubusercontent.com/slideflow/slideflow/3.0.2/scripts/qupath_roi_legacy.groovy && \ |
|
|
39 |
wget https://raw.githubusercontent.com/slideflow/slideflow/master/scripts/welcome.py && \ |
|
|
40 |
chmod +x /scripts/welcome.py |
|
|
41 |
|
|
|
42 |
# Set entrypoint |
|
|
43 |
ENTRYPOINT ["bash", "-c", "python3 /scripts/welcome.py && exec /bin/bash"] |