2017-06-07 5 views
2

Nun, ich bin neu unter Docker und ich muss eine Shiny App in einem Docker Container implementieren.Glänzende App in Rocker/glänzendem Docker bereitstellen

Ich habe das Bild von https://hub.docker.com/r/rocker/shiny/, die Shiny Server enthält, aber ich weiß nicht, wie ich meine Anwendung auf dem Server bereitstellen.

Ich möchte die App auf dem Server bereitstellen, installieren Sie die erforderlichen Pakete für meine App in den Docker, speichern Sie die Änderungen und exportieren Sie das Bild/Container. Wie gesagt, ich bin neu unter Docker und ich weiß nicht, wie es wirklich funktioniert.

Irgendeine Idee?

Antwort

4

ich denke, man durch die Schaffung eines Dockerfile in einem bestimmten Ordner beginnen sollte, die wie etwas würde wie folgt aussehen:

FROM rocker/shiny:latest 

RUN echo 'install.packages(c("package1","package2", ...), \ 
repos="http://cran.us.r-project.org", \ 
dependencies=TRUE)' > /tmp/packages.R \ 
    && Rscript /tmp/packages.R 

EXPOSE 3838 
CMD ["/usr/bin/shiny-server.sh"] 

dann in diesen Ordner gehen und das Bild aufzubauen, ihm einen Namen mit diesem Befehl:

docker build -t your-tag . 

Schließlich, sobald Ihr Bild wird gebaut Sie einen Container erstellen können, und wenn Sie nicht vergessen, das Volumen und den Port auf der Karte, sollten Sie in der Lage sein, es auf localhost zu finden: 3838 mit dem folgenden Befehl aus dem Ordner gestartet, um die SRV-Ordner mit:

docker run --rm -p 3838:3838 -v $PWD/srv/shinyapps/:/srv/shiny-server/ -v $PWD/srv/shinylog/:/var/log/shiny-server/ your-tag 

Wie gesagt in der Docker Dokumentation unter der folgenden Adresse https://hub.docker.com/r/rocker/shiny/ Vielleicht möchten Sie es in losgelöst starten Modus mit der Option -d und ordnen Sie ihn dem Port 80 Ihres Hosts für eine echte Bereitstellung zu.

Verwandte Themen