será fácil para ti. • Funciona en otra computadora. • No funciona fuera del curso. • Yo futuro olvidó en 2 semanas. • Documentación, bitácora, control de versiones 4
será fácil para ti. • Funciona en otra computadora. • No funciona fuera del curso. • Yo futuro olvidó en 2 semanas. • Documentación, bitácora, control de versiones • Automatización 4
será fácil para ti. • Funciona en otra computadora. • No funciona fuera del curso. • Yo futuro olvidó en 2 semanas. • Documentación, bitácora, control de versiones • Automatización • 4
la reproducibilidad (Fehr et al. 2016) • Documenta el software. • Puedes versionar. • Puedes usarlo en cualquier lado. • Conviene empezar tu proyecto especificando el entorno (Bull 2016). 5
tices for Writing Dockerfiles” 2020). • Para compilar usar un contenedor temporal. • Usar la menor cantidad de pasos. • Borrar archivos que agregaste. 9
Si nos convence alguna, descargarla: $ docker pull pici/mi-programa • En caso contrario: Hacer una. $ $EDITOR Dockerfile $ docker build . | tee $(date -Is).log | less 11
estos problemas: • El software no está en repositorios. • No está documentado el proceso. • No existe makefile. • No tenemos instaladas las dependencias. 12
estos problemas: • El software no está en repositorios. • No está documentado el proceso. • No existe makefile. • No tenemos instaladas las dependencias. • Error en el código. 12
y compilarlo. • Puedes descargar el software directamente en el Dockerfile: FROM python:3.9.0b1-alpine3.12 ADD https://github.com/…/kallisto/…/v0.46.0.tar.gz /tmp 16
y compilarlo. • Puedes descargar el software directamente en el Dockerfile: FROM python:3.9.0b1-alpine3.12 ADD https://github.com/…/kallisto/…/v0.46.0.tar.gz /tmp • Puedes usar un gestor de software de un lenguaje: FROM python:3.9.0b1-alpine3.12 RUN pip install kb-python 16
software, hacer un Dockerfile FROM [imagen]:[versión] RUN [comandos para instalar tu software] https://docs.docker.com/engine/reference/builder/ https://docs.docker.com/develop/develop-images/dockerfile_best- practices/ 23
• Copiar el archivo que voy a mandar en el verificador de configuración del repositorio. image: docker:19.03.8 variables: # Connect docker and docker-dind, see # https://docs.gitlab.com/ee/ci/docker/using_docker_bui DOCKER_TLS_CERTDIR: ”/certs” IMAGEN: $CI_REGISTRY_IMAGE/nombre:$CI_COMMIT_REF_SLUG […] 24
• Copiar el archivo que voy a mandar en el verificador de configuración del repositorio. image: docker:19.03.8 variables: # Connect docker and docker-dind, see # https://docs.gitlab.com/ee/ci/docker/using_docker_bui DOCKER_TLS_CERTDIR: ”/certs” IMAGEN: $CI_REGISTRY_IMAGE/nombre:$CI_COMMIT_REF_SLUG […] • Cuando el verificador diga que está bien, copiar el archivo en tu repositorio. 24
for Writing Dockerfiles.” 2020. Docker Documentation. June 3, 2020. https://docs.docker.com/develop/develop-images/dockerfile_best- practices/. Bull, Peter. 2016. “Data Analysis Is a DAG.” April 23, 2016. https://drivendata.github.io/cookiecutter-data-science/#build-from-the- environment-up. Fehr, Jörg, Jan Heiland, Christian Himpe, Jens Saak, and 1 Institute of Engineering and Computational Mechanics at the University of Stuttgart, Pfaffenwaldring 9, D-70569 Stuttgart, Germany. 2016. “Best Practices for Replicability, Reproducibility and Reusability of Computer-Based Experiments Exemplified by Model Reduction Software.” AIMS Mathematics 1 (3): 261–81. https://doi.org/10.3934/math.2016.3.261. 25