Closed felipegonzalez closed 3 years ago
No estoy tan seguro de quitar renv
, la razón que veo para incluirlo es por si queremos distribuir las notas como en el curso de fundamentos. Nos aseguramos de tener las versiones de los paquetes homogenizadas. Que opinas @felipegonzalez?
Como lo veo es;
En resumen: renv lo veo como una versión más ligera para tener reproducibilidad, siempre y cuando los paquetes no tengan dependencias externas importantes (como en el curso de fundamentos). Docker es mejor si hay más cosas fuera de R que hay que controlar para que las cosas funcionen.
Quizá con esto podemos balancear y decidir qué combinación es mejor!
Ya veo! Tienes toda la razón, en este caso es redundante. Gracias por la aclaración, apenas estoy aprendiendo los detalles de Docker. Ahora, tengo otra pregunta: está habilitado un volume para que puedan correr el contenedor y a su vez guardar cambios en los scripts en su máquina? Como has resuelto esto antes?
Si, la idea es montar localmente el repositorio como un volumen. Por ejemplo en mac o linux, primero haces el build de la imagen (este es el paso más tardado, pero el chiste es hacerlo solo una vez):
docker build . -t mod-bayes
Ahora bajo mi repositorio por ejemplo a /home/felipe/clases/modelacion-bayesiana. Luego arrancas docker con:
docker run -e PASSWORD=mipass -p 8787:8787 -v /home/felipe/clases/modelacion-bayesiana:/home/rstudio/mod-bayes mod-bayes:latest
El flujo de trabajo que he usado hasta ahora es:
Este es mi flujo para casi cualquier proyecto importante/grande. Ahora ya me da miedo usar rstudio local! porque a veces cambio cosas en mi sistema (drivers de gpu, etc.) y tengo la paz mental de que es muy poco probable que mis proyectos no corran. La lata de actualizar el contenedor cuando quiero usar otra versión de R o de paquetes es sólo de vez en cuando.
Para los alumnos que no han usado docker, a veces tienen dificultad en instalarlo (es más dificil si no tienen una versión pro de windows) y luego tienen que entender el concepto de contenedores y volúmenes montados (que no es tan fácil al principio!). Creo que el secreto de Docker es que todos dicen que hace las cosas más fácil... pero nadie dice cómo le costó entender cómo hacerlo y tener el modelo mental que no es nada simple!
Por eso mi idea es que para el primer semestre uso Docker para las notas, pero les digo que es opcional. Para tareas y ejercicios les recomiendo usar rstudio cloud, donde ya instalé las cosas necesarias. Pero como esta materia es de segundo semestre ya deberían entender los conceptos de Docker.
De todas formas, podemos probar un flujo y cambiarlo conforme vayamos desarrollando. Voy a subir un primer caso introductorio y vamos viendo.
Falta la instalación de python pero podemos comenzar con esta. También falta esperar que cmdstanr salga de beta, pero creo que es buena idea intentarlo por estabilidad (si no nos quedamos con rstan y pystan).