-
-
Save koki0702/1b5ee259ba688cd2aee7b644190e5813 to your computer and use it in GitHub Desktop.
FROM nvidia/cuda:9.0-base-ubuntu16.04 | |
RUN apt-get update && apt-get install -y --no-install-recommends \ | |
build-essential \ | |
cuda-command-line-tools-9-0 \ | |
cuda-cublas-dev-9-0 \ | |
cuda-cudart-dev-9-0 \ | |
cuda-cufft-dev-9-0 \ | |
cuda-curand-dev-9-0 \ | |
cuda-cusolver-dev-9-0 \ | |
cuda-cusparse-dev-9-0 \ | |
curl \ | |
git \ | |
libcudnn7=7.1.4.18-1+cuda9.0 \ | |
libcudnn7-dev=7.1.4.18-1+cuda9.0 \ | |
libnccl2=2.2.13-1+cuda9.0 \ | |
libnccl-dev=2.2.13-1+cuda9.0 \ | |
libcurl3-dev \ | |
libfreetype6-dev \ | |
libhdf5-serial-dev \ | |
libpng12-dev \ | |
libzmq3-dev \ | |
pkg-config \ | |
python-dev \ | |
rsync \ | |
software-properties-common \ | |
unzip \ | |
zip \ | |
zlib1g-dev \ | |
wget \ | |
&& \ | |
rm -rf /var/lib/apt/lists/* && \ | |
find /usr/local/cuda-9.0/lib64/ -type f -name 'lib*_static.a' -not -name 'libcudart_static.a' -delete && \ | |
rm /usr/lib/x86_64-linux-gnu/libcudnn_static_v7.a | |
# Link NCCL libray and header where the build script expects them. | |
RUN mkdir /usr/local/cuda-9.0/lib && \ | |
ln -s /usr/lib/x86_64-linux-gnu/libnccl.so.2 /usr/local/cuda/lib/libnccl.so.2 && \ | |
ln -s /usr/include/nccl.h /usr/local/cuda/include/nccl.h | |
RUN curl -fSsL -O https://bootstrap.pypa.io/get-pip.py && \ | |
python get-pip.py && \ | |
rm get-pip.py | |
RUN pip --no-cache-dir install \ | |
Pillow \ | |
h5py \ | |
ipykernel \ | |
jupyter \ | |
matplotlib \ | |
mock \ | |
numpy \ | |
scipy \ | |
sklearn \ | |
pandas \ | |
&& \ | |
python -m ipykernel.kernelspec | |
# RUN ln -s -f /usr/bin/python3 /usr/bin/python# | |
# Set up our notebook config. | |
COPY jupyter_notebook_config.py /root/.jupyter/ | |
# Jupyter has issues with being run directly: | |
# https://github.com/ipython/ipython/issues/7062 | |
# We just add a little wrapper script. | |
COPY run_jupyter.sh / | |
# Set up Bazel. | |
# Running bazel inside a `docker build` command causes trouble, cf: | |
# https://github.com/bazelbuild/bazel/issues/134 | |
# The easiest solution is to set up a bazelrc file forcing --batch. | |
RUN echo "startup --batch" >>/etc/bazel.bazelrc | |
# Similarly, we need to workaround sandboxing issues: | |
# https://github.com/bazelbuild/bazel/issues/418 | |
RUN echo "build --spawn_strategy=standalone --genrule_strategy=standalone" \ | |
>>/etc/bazel.bazelrc | |
# Install the most recent bazel release. | |
ENV BAZEL_VERSION 0.15.0 | |
WORKDIR / | |
RUN mkdir /bazel && \ | |
cd /bazel && \ | |
curl -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-installer-linux-x86_64.sh && \ | |
curl -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" -fSsL -o /bazel/LICENSE.txt https://raw.githubusercontent.com/bazelbuild/bazel/master/LICENSE && \ | |
chmod +x bazel-*.sh && \ | |
./bazel-$BAZEL_VERSION-installer-linux-x86_64.sh && \ | |
cd / && \ | |
rm -f /bazel/bazel-$BAZEL_VERSION-installer-linux-x86_64.sh | |
# Download and build TensorFlow. | |
WORKDIR /tensorflow | |
#RUN git clone --branch=r1.9 --depth=1 https://github.com/tensorflow/tensorflow.git . | |
RUN git clone --branch=r1.8 --depth=1 https://github.com/tensorflow/tensorflow.git . | |
# Configure the build for our CUDA configuration. | |
ENV CI_BUILD_PYTHON python | |
ENV LD_LIBRARY_PATH /usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH | |
ENV TF_NEED_CUDA 1 | |
ENV TF_CUDA_COMPUTE_CAPABILITIES=3.5,5.2,6.0,6.1,7.0 | |
ENV TF_CUDA_VERSION=9.0 | |
ENV TF_CUDNN_VERSION=7 | |
# NCCL 2.x | |
ENV TF_NCCL_VERSION=2 | |
RUN gzip -d /usr/share/doc/libnccl2/NCCL-SLA.txt.gz | |
RUN cp /usr/share/doc/libnccl2/NCCL-SLA.txt ../tensorflow/third_party/nccl | |
RUN chmod a+w /usr/share/doc/libnccl2/NCCL-SLA.txt | |
RUN ls -al /usr/share/doc/libnccl2/NCCL-SLA.txt | |
RUN cp /usr/share/doc/libnccl2/NCCL-SLA.txt /usr | |
RUN cp /usr/share/doc/libnccl2/NCCL-SLA.txt /usr/local/cuda | |
RUN cp /usr/share/doc/libnccl2/NCCL-SLA.txt /opt/cuda | |
RUN mkdir -p /usr/local/cuda-9.0/nccl | |
RUN cp /usr/share/doc/libnccl2/NCCL-SLA.txt /usr/local/cuda-9.0/nccl | |
RUN ln -s /usr/local/cuda/lib64/stubs/libcuda.so /usr/local/cuda/lib64/stubs/libcuda.so.1 && \ | |
LD_LIBRARY_PATH=/usr/local/cuda/lib64/stubs:${LD_LIBRARY_PATH} \ | |
tensorflow/tools/ci_build/builds/configured GPU \ | |
bazel build -c opt --copt=-mavx --config=cuda \ | |
--cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" \ | |
tensorflow/tools/pip_package:build_pip_package && \ | |
rm /usr/local/cuda/lib64/stubs/libcuda.so.1 && \ | |
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/pip && \ | |
pip --no-cache-dir install --upgrade /tmp/pip/tensorflow-*.whl && \ | |
rm -rf /tmp/pip && \ | |
rm -rf /root/.cache | |
# Clean up pip wheel and Bazel cache when done. | |
RUN pip install cython opencv-python easydict scipy transforms3d | |
RUN apt update && apt install -y libsm6 libxext6 | |
RUN git clone https://github.com/eigenteam/eigen-git-mirror.git | |
RUN mkdir /usr/include/eigen3 | |
RUN cp -r eigen-git-mirror/Eigen /usr/include/eigen3/Eigen | |
WORKDIR / | |
RUN git clone https://github.com/yuxng/PoseCNN.git | |
WORKDIR PoseCNN/lib | |
RUN ln -s /usr/local/cuda/lib64/stubs/libcuda.so /usr/local/cuda/lib64/stubs/libcuda.so.1 | |
#RUN ln -s /usr/local/cuda/lib64/stubs/libcublas.so /usr/local/cuda/lib64/stubs/libcublas.so.1.0 | |
ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64/stubs/:$LD_LIBRARY_PATH | |
ENV CPATH=/usr/include/eigen3 | |
RUN make | |
#RUN sh make.sh | |
# download VGG-16.npy | |
RUN curl -c /tmp/cookie.txt -s -L "https://drive.google.com/uc?export=download&id=1UdmOKrr9t4IetMubX-y-Pcn7AVaWJ2bL" |grep confirm | sed -e\ | |
"s/^.*confirm=\(.*\)&id=.*$/\1/" | xargs -I{} curl -b /tmp/cookie.txt -L -o vgg16.npy "https://drive.google.com/uc?confirm={}&export=d\ | |
ownload&id=1UdmOKrr9t4IetMubX-y-Pcn7AVaWJ2bL" | |
RUN mv vgg16.npy /PoseCNN/data/imagenet_models/ | |
# dwonload model | |
RUN curl -c /tmp/cookie.txt -s -L "https://drive.google.com/uc?export=download&id=1UNJ56Za6--bHGgD3lbteZtXLC2E-liWz" |grep confirm | sed -e\ | |
"s/^.*confirm=\(.*\)&id=.*$/\1/" | xargs -I{} curl -b /tmp/cookie.txt -L -o demo_models.zip "https://drive.google.com/uc?confirm={}&ex\ | |
port=download&id=1UNJ56Za6--bHGgD3lbteZtXLC2E-liWz" | |
RUN mv demo_models.zip /PoseCNN/data/demo_models | |
RUN pip install pillow pyyaml | |
RUN mkdir /PoseCNN/data/LOV/data | |
RUN apt-get install -y libxrender-dev | |
WORKDIR /PoseCNN | |
ENV PYTHONPATH=/PoseCNN/lib | |
CMD ./experiments/scripts/demo.sh 0 |
I appreciate the effort of the docker, especially for Bazel part. But Unfortunately, I couldn't make it work. There are errors when running make
and it won't do python setup.py build_ext --inplace
and even when I fixed these, it still complained.
Hi, tried this dockerfile but it failed at copying jupyter files:
Successfully installed MarkupSafe-1.1.0 Pillow-5.4.1 Send2Trash-1.5.0 backports-abc-0.5 backports.functools-lru-cache-1.5 backports.shutil-get-terminal-size-1.0.0 bleach-3.1.0 configparser-3.7.1 cycler-0.10.0 decorator-4.3.2 defusedxml-0.5.0 entrypoints-0.3 enum34-1.1.6 funcsigs-1.0.2 functools32-3.2.3.post2 futures-3.2.0 h5py-2.9.0 ipaddress-1.0.22 ipykernel-4.10.0 ipython-5.8.0 ipython-genutils-0.2.0 ipywidgets-7.4.2 jinja2-2.10 jsonschema-2.6.0 jupyter-1.0.0 jupyter-client-5.2.4 jupyter-console-5.2.0 jupyter-core-4.4.0 kiwisolver-1.0.1 matplotlib-2.2.3 mistune-0.8.4 mock-2.0.0 nbconvert-5.4.1 nbformat-4.4.0 notebook-5.7.4 numpy-1.16.1 pandas-0.24.1 pandocfilters-1.4.2 pathlib2-2.3.3 pbr-5.1.2 pexpect-4.6.0 pickleshare-0.7.5 prometheus-client-0.5.0 prompt-toolkit-1.0.15 ptyprocess-0.6.0 pygments-2.3.1 pyparsing-2.3.1 python-dateutil-2.8.0 pytz-2018.9 pyzmq-17.1.2 qtconsole-4.4.3 scandir-1.9.0 scikit-learn-0.20.2 scipy-1.2.1 simplegeneric-0.8.1 singledispatch-3.4.0.3 six-1.12.0 sklearn-0.0 subprocess32-3.5.3 terminado-0.8.1 testpath-0.4.2 tornado-5.1.1 traitlets-4.3.2 wcwidth-0.1.7 webencodings-0.5.1 widgetsnbextension-3.4.2
Installed kernelspec python2 in /usr/local/share/jupyter/kernels/python2
Removing intermediate container 07160b1e5baf
---> 1fd3c1b29db3
Step 6/53 : COPY jupyter_notebook_config.py /root/.jupyter/
COPY failed: stat /var/lib/docker/tmp/docker-builder003884375/jupyter_notebook_config.py: no such file or directory
Where can I find the missing files for this project?
I appreciate your help! Thanks!
@rsisto I would just comment out that line in the Dockerfile, you do not have his jupyter notebook
FYI: There is one part missing, this will not run ICP at the end. It requires compiling of lib/synthesize module and changing config file, the one provided in demo.sh. I am not too familiar with docker and thus taking me longer to work on this.
P.S. - Did you run this on docker or nvidia-docker?