nuest / ten-simple-rules-dockerfiles

Ten Simple Rules for Writing Dockerfiles for Reproducible Data Science
https://doi.org/10.1371/journal.pcbi.1008316
Creative Commons Attribution 4.0 International
64 stars 15 forks source link

Paper Build not Reproducible #19

Closed vsoch closed 4 years ago

vsoch commented 5 years ago

Heads up @nuest your container instructions for knitting the RMarkdown aren't reproducible, I get :

tlmgr: package repository http://mirror.utexas.edu/ctan/systems/texlive/tlnet (not verified: gpg unavailable)
[1/1, ??:??/??:??] install: xstring [11k]
running mktexlsr ...
chmod(420,/opt/TinyTeX/tlpkg/texlive.tlpdb) failed: Operation not permitted at /opt/TinyTeX/tlpkg/TeXLive/TLUtils.pm line 1161.
done running mktexlsr.
tlmgr: package log updated: /opt/TinyTeX/texmf-var/web2c/tlmgr.log
tlmgr path add
! Missing number, treated as zero.
<to be read again> 
                   \protect 
l.976 ...nter}\rule{0.5\linewidth}{\linethickness}
                                                  \end{center} 

Error: Failed to compile ten-simple-rules-dockerfiles.tex. See https://yihui.name/tinytex/r/#debugging for debugging tips. See ten-simple-rules-dockerfiles.log for more info.
Execution halted

I think it's a bit risky to require installation of dependencies to the container at runtime - this is error prone (as already not working) and hugely not likely to work in the future. I'll see if I can put together a proper Dockerfile for this repo, likely tomorrow because I'm doing server work today.

vsoch commented 5 years ago

It's a bit ironic that a paper repo that talks about building Dockerfiles doesn't provide one, hehe.

vsoch commented 5 years ago

Actually updated - I have a lot to do this weekend so I can't debug this, and since you're more familiar with knitting RMarkdowns I think you'd be the right person to do it. I'll start working on this when the issue is resolved, thanks!

vsoch commented 5 years ago

I started a draft PR here https://github.com/nuest/ten-simple-rules-dockerfiles/pull/20

Let me know when you have some insight to the compile issue!

nuest commented 5 years ago

Thanks for taking this issue on. I struggled to see the irony first, but then decided that's just me falling into a trap that I want other people to avoid: that I should never expect that what is simple for me (in my computing environment) is simple for others, too.

The images uses the R package tinytex to manage the LaTeX installation, so I switched to it for installing the dependencies - the PR is updated and merged, let me know if this works for you, too.

vsoch commented 5 years ago

I completely am on the same page - I build containers for just about everything, but I use Python and GoLang so much that I have them installed locally, and I've adapted to "things just working!" It's a good sanity check to try and reproduce your final thing (whatever it may be!) in a container so the user doesn't have to struggle through "But wait, this doesn't work for me!"

The container now compiles great! Feel free to merge the PR when ready.