"vscode:/vscode.git/clone" did not exist on "f158d9cebabc97b38e450d5018844180ed354dc9"
Dockerfile 3.45 KB
Newer Older
Ivan Bogatyy's avatar
Ivan Bogatyy committed
1
# Java baseimage, for Bazel.
Ivan Bogatyy's avatar
Ivan Bogatyy committed
2
FROM openjdk:8
3
4
5

ENV SYNTAXNETDIR=/opt/tensorflow PATH=$PATH:/root/bin

Ivan Bogatyy's avatar
Ivan Bogatyy committed
6
7
8
9
# Install system packages. This doesn't include everything the TensorFlow
# dockerfile specifies, so if anything goes awry, maybe install more packages
# from there. Also, running apt-get clean before further commands will make the
# Docker images smaller.
10
11
12
RUN mkdir -p $SYNTAXNETDIR \
    && cd $SYNTAXNETDIR \
    && apt-get update \
Ivan Bogatyy's avatar
Ivan Bogatyy committed
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
    && apt-get install -y \
          file \
          git \
          graphviz \
          libcurl3-dev \
          libfreetype6-dev \
          libgraphviz-dev \
          liblapack-dev \
          libopenblas-dev \
          libpng12-dev \
          libxft-dev \
          python-dev \
          python-mock \
          python-pip \
          python2.7 \
          swig \
          vim \
          zlib1g-dev \
    && apt-get clean \
    && (rm -f /var/cache/apt/archives/*.deb \
        /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true)

# Install common Python dependencies. Similar to above, remove caches
# afterwards to help keep Docker images smaller.
RUN pip install --ignore-installed pip \
    && python -m pip install numpy \
    && rm -rf /root/.cache/pip /tmp/pip*
RUN python -m pip install \
          asciitree \
          ipykernel \
          jupyter \
          matplotlib \
          pandas \
          protobuf \
          scipy \
          sklearn \
    && python -m ipykernel.kernelspec \
    && python -m pip install pygraphviz \
          --install-option="--include-path=/usr/include/graphviz" \
          --install-option="--library-path=/usr/lib/graphviz/" \
Ivan Bogatyy's avatar
Ivan Bogatyy committed
53
54
    && python -m jupyter_core.command nbextension enable \
          --py --sys-prefix widgetsnbextension \
Ivan Bogatyy's avatar
Ivan Bogatyy committed
55
56
57
58
    && rm -rf /root/.cache/pip /tmp/pip*

# Installs the latest version of Bazel.
RUN wget --quiet https://github.com/bazelbuild/bazel/releases/download/0.4.3/bazel-0.4.3-installer-linux-x86_64.sh \
59
    && chmod +x bazel-0.4.3-installer-linux-x86_64.sh \
Ivan Bogatyy's avatar
Ivan Bogatyy committed
60
61
62
63
64
65
66
67
68
69
70
71
72
73
    && ./bazel-0.4.3-installer-linux-x86_64.sh \
    && rm ./bazel-0.4.3-installer-linux-x86_64.sh

COPY WORKSPACE $SYNTAXNETDIR/syntaxnet/WORKSPACE
COPY tools/bazel.rc $SYNTAXNETDIR/syntaxnet/tools/bazel.rc
COPY tensorflow $SYNTAXNETDIR/syntaxnet/tensorflow

# Compile common TensorFlow targets, which don't depend on DRAGNN / SyntaxNet
# source. This makes it more convenient to re-compile DRAGNN / SyntaxNet for
# development (though not as convenient as the docker-devel scripts).
RUN cd $SYNTAXNETDIR/syntaxnet/tensorflow \
    && tensorflow/tools/ci_build/builds/configured CPU \
    && cd $SYNTAXNETDIR/syntaxnet \
    && bazel build -c opt @org_tensorflow//tensorflow:tensorflow_py
74

Ivan Bogatyy's avatar
Ivan Bogatyy committed
75
76
77
78
79
80
81
# Build the codez.
WORKDIR $SYNTAXNETDIR/syntaxnet
COPY dragnn $SYNTAXNETDIR/syntaxnet/dragnn
COPY syntaxnet $SYNTAXNETDIR/syntaxnet/syntaxnet
COPY third_party $SYNTAXNETDIR/syntaxnet/third_party
COPY util/utf8 $SYNTAXNETDIR/syntaxnet/util/utf8
RUN bazel build -c opt //dragnn/python:all //dragnn/tools:all
82

Ivan Bogatyy's avatar
Ivan Bogatyy committed
83
84
85
86
# This makes the IP exposed actually "*"; we'll do host restrictions by passing
# a hostname to the `docker run` command.
COPY tensorflow/tensorflow/tools/docker/jupyter_notebook_config.py /root/.jupyter/
EXPOSE 8888
87

Ivan Bogatyy's avatar
Ivan Bogatyy committed
88
89
90
# This does not need to be compiled, only copied.
COPY examples $SYNTAXNETDIR/syntaxnet/examples
# Todo: Move this earlier in the file (don't want to invalidate caches for now).
91

Ivan Bogatyy's avatar
Ivan Bogatyy committed
92
CMD /bin/bash -c "bazel-bin/dragnn/tools/oss_notebook_launcher notebook --debug --notebook-dir=/opt/tensorflow/syntaxnet/examples"