Overture Data Management System
It is possible to run the dms locally while controlling a remote docker engine.
- Port forward the docker.sock Forwarding the Docker Socket over SSH
ssh -nNT -L /some/local/path/to/docker.sock:/var/run/docker.sock user@someremote - Run the dms with the following env variable set:
DOCKER_HOST=unix:///some/local/path/to/docker.sock
To test the score uploads and downloads, ego, song and score services must be running and healthy. Since the score service responds with presigned s3 urls that use the minio-api as the service name, the urls would not be resolvable outside of the defined docker-swarm-network. To fix this, a convienece docker image state was created in the Dockerfile (target is called genomic-transfer-helper) which pulls the appropriate song-client and score-client distributions and configures them with the right JWT. The following instructions will allow you to download and upload using this tool:
- Log in to the EGO-UI service. The default local url is http://localhost:9002
- Log out
- By default, new users obtain the role
USER. In order to proceed, theADMINrole is needed. To do this, run the following command
docker exec -it $(docker service ps ego-db --no-trunc --format '{{ .Name }}.{{.ID}}' | head -1) psql -U postgres ego -c "UPDATE egouser set type='ADMIN' where email='<the-email-you-logged-in-with-previously>' and providertype='<one of: GOOGLE,LINKEDIN,FACEBOOK,GITHUB,ORCID>';"
- Log in again into EGO-UI (http://localhost:9002) and now you should be able to use the UI
- Select
Usersin the side bar, and then select your user record. On the right most pane, click theEditbutton at the top and then click the+ Addbutton for theGroupssection, and add your self to thedcc-admingroup. Then click theSavebutton at the top. This will give you the neccessary permissions to use song and score. - Log out
- Start the browsers inspector tool (this will be different for each browser) and filter for XHR requests.
- Log in to the EGO-UI. Once logged in, refer to response for the
ego-token?client_id=ego-uirequest. This is the JWT - Copy and paste the JWT from the previous step into the file
./jwt.txt. - Run
make start-transfer-shell. This will automatically run thegenomic-transfer-helperand load the contents ofjwt.txtas the JWT to allow authorized access to song and score. - Once logged into the container, you can use the score and song clients. Run
./song-client/bin/sing pingandcurl $(curl -sL http://score-api:8080/download/ping)to do a health check.
The gateway is based on nginx. the config template file is under ./nginx/path-based, there is also a docker file tagging the gateway is done in Jenkinsfile, it will always have a new tag with the same version as the dms version.
Sometimes, if the reserved/limit memory is too low, a container will get killed by the kernel. To find out if this is the case, run
journalctl -k | grep -i -e memory -e oom. For java apps, the status "task: non-zero exit (137)" is usually the case.
docker service ps --no-trunc {serviceName}journalctl -u docker.service | tail -n 50
DMS development supported by:
