2016-11-01 2 views
2

Ich möchte ein interaktives Tutorial schreiben, um einem Team beizubringen, wie man Typescript und Angular 2 verwendet, aber ich möchte nicht, dass jeder Jupyter installiert.Bau Docker Bild mit eckigen 2, Jupiter und Maschinenschrift

Also, ich möchte ein Docker-Bild erstellen, das alles benötigt hat.

Dies ist meine Dockerfile so weit, aber ich bin mir nicht sicher, wo das Paket.json von Quickstart kopieren, so npm install wird es finden, die Installation tun und Jupyter finden es.

FROM jupyter/minimal-notebook 

MAINTAINER Jupyter Project <[email protected]> 

USER root 

RUN apt-get update && \ 
    apt-get install -y --no-install-recommends && \ 
    apt-get install -y npm nodejs nodejs-legacy wget locales git \ 
    fonts-dejavu \ 
    gcc && apt-get clean && \ 
    rm -rf /var/lib/apt/lists/* 

RUN npm install --save jupyter-js-plugins  

USER $NB_USER 

Ich möchte diese plugin von Github für Typoskript hinzuzufügen.

Eine andere Möglichkeit besteht darin, die Dateien einfach in das Docker-Image zu kopieren, aber wo würden sie kopiert werden, um von Jupyter gefunden zu werden?

+0

'ADD' kann von der URL übernommen werden, die Github in Ihrem Fall ist. Oder locke mit Run oder [this] (http://stackoverflow.com/questions/32189877/creating-a-docker-image-for-a-github-project) sollte hilfreich sein. – Rao

+0

@Rao - Ich kann Ihre Idee versuchen, als ich in ein Problem lief, wo das Plugin nicht installiert ist, aber alles geladen ist. Ich muss vielleicht nur meinen eigenen Andock-Container bauen und nicht mit einem beginnen, in dem Jupyter installiert ist. –

Antwort

2

Sie können die Datei package.json überall kopieren, solange Sie WORKDIR vor dem Ausführen der NPM-Installation festlegen.

COPY . /src 
WORKDIR /src 
RUN npm install 
1

The Dockerfile Sie von uses /home/$NB_USER/work as WORKDIR erstreckt sind. Die env Variable NB_USER wird joyvan im base Dockerfile

gesetzt Wenn Sie Ihre Dateien wie diese

COPY . /home/$NB_USER/work/ 

kopieren Sie sollten in Ordnung sein.

Ich bin mir nicht sicher, wie einfach es wäre, die env-Variable zu überschreiben, da sie bereits beim Erstellen der Bilder verwendet wird. Sie sind wahrscheinlich besser dran, nur Ihre eigenen WORKDIR in Ihrer Dockerfile wie @JayChase mentioned zu definieren.