romi / plant-3d-vision

Reconstruct a 3D digital twin of the plant from pictures (RGB images) and quantify its phyllotaxis.
https://docs.romi-project.eu/plant_imager/
GNU Lesser General Public License v3.0
5 stars 1 forks source link

Clean Dockerfile #47

Closed naittaleb closed 4 years ago

jlegrand62 commented 4 years ago

Je ne peux tester cette version du Dockerfile car j'ai CUDA 10.2 sur ma machine et pas 10.1...

Par contre je peux soulever certains points:

  1. tout faire en root, notamment les git clone et install n'est pas très safe, il faudrait créer un utilisateur (romi?) avec USER, cf official doc;
  2. les chemins relatifs c'est pas tip-top, utiliser WORKDIR me semble plus approprié, cf. Dockerfile reference;
  3. pourquoi installer les paquets romi en mode develop ?
  4. la méthode recommandé pour l'installation des paquets python est python -m pip install SomePackage y compris pour les "sources", cf. official doc;
  5. pourquoi vider /var/lib/apt/lists/\ (l.7), cela force un apt update au RUN suivant (l.10).

Les points 1 & 2 me semblent importants, je pinaille pour le reste :smile:!

Dernier point: la branche dev de Scan3d embarque les données et scripts de test dans Scan3d/tests, si on utilise un mount externe des données dans DB_LOCATION, on pourrait les supprimer pour gagner encore quelques octets.

jlegrand62 commented 4 years ago

Si tu veux utiliser un utilisateur romi, il faut le créer. Le plus simple à mon avis:

# Set non-root user name:
ENV SETUSER=romi

# Create a non-root user and give it rights over its "home folder"
RUN useradd -m ${SETUSER} && \
    chown -R ${SETUSER}: /home/${SETUSER}

# Change to non-root user:
USER ${SETUSER}

# Change working directory:
WORKDIR /home/${SETUSER}

Aussi, il faudra très probablement ajouter ENV PATH=$PATH:"/home/romi/.local/bin/" pour pouvoir appeler romi_run_task.