Sign inSign up

akitchin/vislab

By akitchin

Updated almost 9 years ago

getting vislab to work in docker form

Image
0

264

akitchin/vislab repository overview

To be clear I'm not affiliated with the Project, I just wanted to dockerize it.

Link to Project Page http://vislab.berkeleyvision.org/

Create docker-compose.yml

version: '2'

services:
  web:
    ports:
      - 8888:8888
    image: akitchin/vislab
    depends_on:
      - mongo
      - redis
  redis:
    image: redis
  mongo:
    image: mongo

Then you should be able to run

$ docker-compose up
Starting vislab_redis_1 ... 
Starting vislab_mongo_1 ... 
Starting vislab_redis_1
Starting vislab_redis_1 ... done
Starting vislab_web_1 ... 
Starting vislab_web_1 ... done
Attaching to vislab_mongo_1, vislab_redis_1, vislab_web_1
mongo_1  | 2017-12-03T03:56:04.323+0000 I CONTROL  [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=881aab112eb6
mongo_1  | 2017-12-03T03:56:04.323+0000 I CONTROL  [initandlisten] db version v3.4.7
redis_1  | 1:C 03 Dec 03:56:05.299 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis_1  | 1:C 03 Dec 03:56:05.299 # Redis version=4.0.2, bits=64, commit=00000000, modified=0, pid=1, just started
mongo_1  | 2017-12-03T03:56:04.323+0000 I CONTROL  [initandlisten] git version: cf38c1b8a0a8dca4a11737581beafef4fe120bcd
redis_1  | 1:C 03 Dec 03:56:05.299 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
mongo_1  | 2017-12-03T03:56:04.323+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1t  3 May 2016
mongo_1  | 2017-12-03T03:56:04.323+0000 I CONTROL  [initandlisten] allocator: tcmalloc
mongo_1  | 2017-12-03T03:56:04.323+0000 I CONTROL  [initandlisten] modules: none
mongo_1  | 2017-12-03T03:56:04.323+0000 I CONTROL  [initandlisten] build environment:
mongo_1  | 2017-12-03T03:56:04.323+0000 I CONTROL  [initandlisten]     distmod: debian81
mongo_1  | 2017-12-03T03:56:04.323+0000 I CONTROL  [initandlisten]     distarch: x86_64
redis_1  | 1:M 03 Dec 03:56:05.300 * Running mode=standalone, port=6379.
mongo_1  | 2017-12-03T03:56:04.323+0000 I CONTROL  [initandlisten]     target_arch: x86_64
mongo_1  | 2017-12-03T03:56:04.323+0000 I CONTROL  [initandlisten] options: {}
mongo_1  | 2017-12-03T03:56:04.323+0000 W -        [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
redis_1  | 1:M 03 Dec 03:56:05.300 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
redis_1  | 1:M 03 Dec 03:56:05.300 # Server initialized
redis_1  | 1:M 03 Dec 03:56:05.300 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
mongo_1  | 2017-12-03T03:56:04.330+0000 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
mongo_1  | 2017-12-03T03:56:04.330+0000 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
redis_1  | 1:M 03 Dec 03:56:05.300 * Ready to accept connections
mongo_1  | 2017-12-03T03:56:04.330+0000 I STORAGE  [initandlisten] 
mongo_1  | 2017-12-03T03:56:04.330+0000 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
mongo_1  | 2017-12-03T03:56:04.330+0000 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
mongo_1  | 2017-12-03T03:56:04.330+0000 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=487M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
mongo_1  | 2017-12-03T03:56:04.502+0000 I CONTROL  [initandlisten] 
mongo_1  | 2017-12-03T03:56:04.502+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
mongo_1  | 2017-12-03T03:56:04.502+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
mongo_1  | 2017-12-03T03:56:04.502+0000 I CONTROL  [initandlisten] 
mongo_1  | 2017-12-03T03:56:04.504+0000 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
mongo_1  | 2017-12-03T03:56:04.505+0000 I NETWORK  [thread1] waiting for connections on port 27017
mongo_1  | 2017-12-03T03:56:05.006+0000 I FTDC     [ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost. OK
web_1    | [I 03:56:06.193 NotebookApp] Serving notebooks from local directory: /
web_1    | [I 03:56:06.194 NotebookApp] 0 active kernels
web_1    | [I 03:56:06.194 NotebookApp] The Jupyter Notebook is running at:
web_1    | [I 03:56:06.194 NotebookApp] http://0.0.0.0:8888/?token=9d704b38ea935aa0d60f3600b7aca06a3106792da996cc61
web_1    | [I 03:56:06.194 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
web_1    | [C 03:56:06.194 NotebookApp] 
web_1    |     
web_1    |     Copy/paste this URL into your browser when you connect for the first time,
web_1    |     to login with a token:
web_1    |         http://0.0.0.0:8888/?token=9d704b38ea935aa0d60f3600b7aca06a3106792da996cc61

Then you should be able to paste the URL you get into the a browser and replace 0.0.0.0 with 127.0.0.1

You'll also need the vislab_shared_data.tgz link found on the Tutorial Page of above website if you want to build the dockerfile yourself.

If needed this is what's in my Dockerfile

FROM python:2.7-stretch
RUN mkdir /root/work && cd /root/work && git clone https://github.com/sergeyk/vislab.git vislab.git && cd /
RUN apt-get update && apt-get install -y parallel libfftw3-dev libfftw3-doc autotools-dev g++ build-essential openmpi-bin openmpi-doc libopenmpi-dev fftw3 fftw3-dev python-dev libboost-dev libboost-locale-dev clang-3.8 openjdk-8-jdk libboost-program-options-dev zlib1g-dev automake gcc-6 libboost-all-dev && rm -rf /var/lib/apt/lists/*
RUN pip install Pillow nltk Cython pymongo joblib rq husl numpy mpi4py jupyter boost vowpalwabbit
RUN curl -O https://bitbucket.org/ogrisel/pyleargist/get/2.0.2.tar.gz && tar zxvf 2.0.2.tar.gz && mv ogrisel-pyleargist-96597f8b88f8 pyleargist-2.0.2 && cd /pyleargist-2.0.2 && sed -ri "s/import sys, os/import sys, os, numpy/" setup.py && sed -ri "s/'lear_gist',/'lear_gist', numpy.get_include()/" setup.py && python setup.py build
RUN python -m nltk.downloader punkt
RUN mkdir -p /root/work/vislab.git/data/shared
ADD vislab_shared_data.tgz /root/work/vislab.git/data/shared/
ADD config.json /root/work/vislab.git/vislab/
RUN curl -L https://github.com/krallin/tini/releases/download/v0.6.0/tini > tini && \
    echo "d5ed732199c36a1189320e6c4859f0169e950692f451c03e7854243b95f4234b *tini" | sha256sum -c - && \
    mv tini /usr/local/bin/tini && \
    chmod +x /usr/local/bin/tini
# Install some dependencies.
RUN pip2 --no-cache-dir install ipykernel && \
    \
    python2 -m ipykernel.kernelspec && \
    rm -rf /root/.cache
EXPOSE 8888
ENTRYPOINT ["tini", "--"]
CMD ["jupyter", "notebook", "--ip=0.0.0.0","--no-browser", "--allow-root"]

Tag summary

Content type

Image

Digest

Size

1.5 GB

Last updated

almost 9 years ago

docker pull akitchin/vislab