使用 angular 2、jupyter 和 typescript 构建 docker 图像

Building docker image with angular 2, jupyter and typescript

我想写一个交互式教程来教一个团队如何使用 Typescript 和 Angular2,但我不想让每个人都安装 Jupyter。

所以,我想构建一个 docker 包含所需一切的映像。

到目前为止,这是我的 Dockerfile,但我不确定从 Quickstart 复制 package.json 的位置,因此 npm install 会找到它,进行安装并让 Jupyter 找到它.

FROM jupyter/minimal-notebook

MAINTAINER Jupyter Project <jupyter@googlegroups.com>

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

我想为 Typescript 添加来自 github 的 plugin

另一种选择是只将文件复制到 docker 图像,但是要将它们复制到哪里才能被 Jupyter 找到?

只要在 运行 NPM 安装之前设置 WORKDIR,就可以将 package.json 复制到任何地方。

COPY . /src
WORKDIR /src
RUN npm install

您要从 uses /home/$NB_USER/work as WORKDIR. The env variable NB_USER is set to joyvan in the base Dockerfile

扩展的 Dockerfile

如果你像这样复制你的文件

COPY . /home/$NB_USER/work/

你应该没事的。

我不确定覆盖 env 变量有多容易,因为它已经在构建图像时使用了。您最好在 Dockerfile 中定义自己的 WORKDIR,例如 .