Esta es la contestación más completa que encomtrarás dar, sin embargo obsérvala detenidamente y analiza si se puede adaptar a tu proyecto.
Solución:
Imagen base recomendada
Como sugerí en mi comentario, podría escribir un Dockerfile que se vea así:
FROM python:3
RUN pip install --no-cache-dir --upgrade pip &&
pip install --no-cache-dir nibabel pydicom matplotlib pillow &&
pip install --no-cache-dir med2image
CMD ["cat", "/etc/os-release"]
Y el ejemplo de comando anterior podría confirmar en tiempo de ejecución (docker build --pull -t test . && docker run --rm -it test
) que esta imagen está basada en la distribución de GNU/Linux “Debian estable”.
Genérico Dockerfile
modelo
Finalmente, para dar una respuesta completa, tenga en cuenta que una buena práctica con respecto a las dependencias de Python consiste en especificarlas de manera declarativa en un archivo de texto dedicado (en orden alfabético) de modo que, para su ejemplo, es posible que desee escribir el siguiente archivo:
requirements.txt
matplotlib
med2image
nibabel
pillow
pydicom
y use el siguiente genérico
Dockerfile
FROM python:3
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir --upgrade pip &&
pip install --no-cache-dir -r requirements.txt
COPY . .
CMD [ "python", "./your-daemon-or-script.py" ]
Para ser más precisos, este es el enfoque sugerido en la documentación de la imagen oficial de Docker. python
§. Cómo usar esta imagen
Algunas de las otras respuestas / comentarios sugieren cambiar su imagen base, pero si desea mantener su ubuntu 16.04, también puede simplemente especificar su versión de pip / python para usar pip3
o pip3.5
como se muestra a continuación.
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y --no-install-recommends
python3.5
python3-pip
&&
apt-get clean &&
rm -rf /var/lib/apt/lists/*
RUN pip3 install nibabel pydicom matplotlib pillow
RUN pip3 install med2image
Prueba pip3
RUN pip3 install nibabel pydicom matplotlib pillow
RUN pip3 install med2image
Tienes la posibilidad difundir esta noticia si te fue de ayuda.