GithubHelp home page GithubHelp logo

msauria / higlass-docker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from higlass/higlass-docker

0.0 2.0 0.0 5.75 MB

Builds a docker container wrapping higlass-server and higlass-client in nginx

License: MIT License

Shell 56.43% Python 43.57%

higlass-docker's Introduction

DOI

higlass-docker

Builds a docker container wrapping higlass-client and higlass-server in nginx, tests that it works, and if there are no errors in the PR, pushes the image to DockerHub.

Running Locally

You can see HiGlass in action at higlass.io.

It is also easy to launch your own. Install Docker, and then:

docker pull higlass/higlass-docker # Ensure that you have the latest.
docker run --detach \
           --publish 8888:80 \
           --volume ~/hg-data:/data \
           --volume ~/hg-tmp:/tmp \
           --name higlass-container \
           higlass/higlass-docker

The two --volume options are necessary to prevent the files you upload from consuming all of relatively small space allocated for the root volume.

For ingest, you'll need to put your files in one of the shared directories: Then it will be available to scripts running inside the container.

# For example...
COOLER=dixon2012-h1hesc-hindiii-allreps-filtered.1000kb.multires.cool
wget -P ~/hg-tmp https://s3.amazonaws.com/pkerp/public/$COOLER

# Confirm that the file is visible inside the container:
docker exec higlass-container ls /tmp

# Ingest:
docker exec higlass-container python higlass-server/manage.py ingest_tileset --filename /tmp/$COOLER --filetype cooler --datatype matrix

You can now hit the API to confirm that the file was ingested successfully by first listing the available tilesets

curl http://localhost:8888/api/v1/tilesets/

And then trying to actually get some data from the tileset. In the examples below, $ID is the uuid shown in the list of tilesets above.

# Summary:
curl http://localhost:8888/api/v1/tileset_info/?d=$ID
# Details:
curl http://localhost:8888/api/v1/tiles/?d=$ID.0.0.0

Troubleshooting

  • Error to launch the container because the container name is already in use (docker: Error response from daemon: Conflict. The container name "/higlass-container" is already in use by container ...). Use docker rm higlass-container and launch the container again.

Django admin interface

The admin interface lets you interact with and inspect the data stored in the local higlass instance. To access the admin interface you need to first create an admin user:

docker exec -it higlass-container higlass-server/manage.py createsuperuser

The admin interface can then be accessed at: http://localhost:8888/admin/

Deployment

Only one Docker container is required, but in production, you'll probably want other containers for nginx, redis, etc. Docker Compose is the usual tool for this, but at the present it does not support an analog to the --from-cache option. Instead, for the moment, we are doing this:

curl https://raw.githubusercontent.com/hms-dbmi/higlass-docker/start_production.sh | bash

For more details, read README-DEPLOY.

Development

To develop higlass-client and higlass-server, check out the corresponding repos.

To work on the Docker deployment, checkout this repo, install Docker, and then:

./test_runner.sh

# You can see the containers that have started:
docker ps

# View all the logs from the container:
docker exec container-TIMESTAMP ./logs.sh

# and you can connect to a running container:
docker exec --interactive --tty container-TIMESTAMP bash

# or remove all containers (use with caution):
docker ps -a -q | xargs docker stop | xargs docker rm

To manually test the a new image at http://localhost:8888 run:

./test_build.sh <NAME>

# You can log into the instance with:
docker exec -it cont-<NAME> bash

Releasing updates

Travis will push an image to DockerHub with every successful run. If it's tagged (ie git tag v0.0.x && git push origin --tags), then that version number will be pushed to DockerHub, and latest will be updated as well.

License

The code in this repository is provided under the MIT License.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.