ViSUS Docker Deployment

From
Revision as of 21:09, 31 July 2017 by Admin (talk | contribs) (Created page with "== Before starting == Open a docker shell and make sure you are logged: <pre>docker login Username: visus Password: XXXX</pre> == Example of using precompiled mod_visus ==...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Before starting

Open a docker shell and make sure you are logged:

docker login
Username: visus
Password: XXXX

Example of using precompiled mod_visus

Create 'server.config' file (replace 2kbit1 with your dataset name):

cat <<EOF > server.config
<?xml version="1.0" ?>
<visus>
  <dataset name='2kbit1' url='file:///home/visus/dataset/2kbit1/visus.idx' permissions='public'/>
</visus>
EOF

Create Dockerfile:

cat <<EOF > Dockerfile
FROM visus/mod_visus
COPY server.config /home/visus/server.config
EOF

Build mod_visus docker image:

docker build -t visus/my-server .

Run the image mounting a host volume:

docker run -it --rm -p 8080:80 --volume="c:/visus_dataset/2kbit1:/home/visus/dataset/2kbit1" visus/my-server 

Test if it works:

wget "http://localhost:8080/mod_visus?action=readdataset&dataset=2kbit1"

Example of creating a test david_subsampled server

Create 'server.config' file:

cat <<EOF > server.config
<?xml version="1.0" ?>
<visus>
  <dataset name='david_subsampled' url='file:///home/visus/dataset/david_subsampled/visus.idx' permissions='public'/>
</visus>
EOF

Create Dockerfile:

cat <<EOF > Dockerfile
FROM visus/mod_visus
COPY server.config /home/visus/server.config
RUN set -x \
  && apt update \
  && apt install -y curl \
  && cd /home/visus/dataset \
  && curl http://atlantis.sci.utah.edu/download/david_subsampled.tar.gz -o temp.tar.gz \
  && tar xvzf temp.tar.gz \
  && rm -f temp.tar.gz \
  && chown -R www-data /home/visus/dataset \
  && chmod -R a+rX  /home/visus/dataset  
EOF

Build mod_visus docker image:

docker build -t visus/david_subsampled .

Run the image mounting a host volume:

docker run -it --rm -p 8080:80 visus/david_subsampled 

Test if it works:

wget "http://localhost:8080/mod_visus?action=readdataset&dataset=david_subsampled"

Some tricks

To debug mod_visus (example: to check Apache log files):

docker run -ti -p 8080:80 --entrypoint=/bin/bash visus/mod_visus -s
/usr/local/bin/httpd-foreground.sh

To run an interactive 'clean' ubuntu (or whatever):

docker run -ti -p 8080:80 --entrypoint=/bin/bash ubuntu:16.04 -s

If you want to remove all old docker images and containers (and you know what you are doing!)

docker rm  -f $(docker ps  -a -q)
docker rmi -f $(docker images -q)