Skip to content
Snippets Groups Projects
gspecies_compose_template.yml.bak 14.76 KiB
# ./docker_data is created and filled with persistent data that should be backuped

version: '3.7'
services:
    proxy:
        image: quay.io/abretaud/nginx-ldap:latest
        volumes:
            - ./src_data/:/project_data/
            #- /groups/XXX/:/groups/XXX/:ro  # We do this when we have symlinks in src_data pointing to /groups/XXX/...
            - ./nginx/conf:/etc/nginx/conf.d
        networks:
            - traefikbig
            - genus_species
        deploy:
          labels:
            # Download page
            - "traefik.http.routers.genus_species-nginx.rule=(Host(`custom_host`) && PathPrefix(`/sp/genus_species/download`))"
#            - "traefik.http.routers.genus_species-nginx.tls=true"
#            - "traefik.http.routers.genus_species-nginx.entryPoints=webs"
            - "traefik.http.routers.genus_species-nginx.entryPoints=web" # lg
#            - "traefik.http.routers.genus_species-nginx.middlewares=sp-auth,sp-app-trailslash,sp-prefix"
            - "traefik.http.routers.genus_species-nginx.middlewares=sp-app-trailslash,sp-prefix" # lg
            - "traefik.http.services.genus_species-nginx.loadbalancer.server.port=80"
          restart_policy:
            condition: on-failure
            delay: 5s
            max_attempts: 3
            window: 120s

    tripal:
        image: quay.io/galaxy-genome-annotation/tripal:v2.x
        depends_on:
            - tripal-db
            - elasticsearch
        volumes:
            - ./docker_data/galaxy/:/export/:ro
            - ./src_data/:/project_data/:ro
            - ./src_data:/data:ro
            - ./banner.png:/var/www/html/banner.png:ro
            #- /groups/XXX/:/groups/XXX/:ro  # We do this when we have symlinks in src_data pointing to /groups/XXX/...
        environment:
            DB_HOST: tripal-db.genus_species
            BASE_URL_PATH: /sp/genus_species
            UPLOAD_LIMIT: 20M
            MEMORY_LIMIT: 512M
            TRIPAL_GIT_CLONE_MODULES: "https://github.com/abretaud/tripal_rest_api.git[@c6f9021ea5d4c6d7c67c5bd363a7dd9359228bbc] https://github.com/tripal/tripal_elasticsearch.git[@dc7f276046e394a80a7dfc9404cf1a149006eb2a] https://github.com/tripal/tripal_analysis_interpro.git https://github.com/tripal/tripal_analysis_go.git https://github.com/tripal/tripal_analysis_blast.git  https://github.com/tripal/tripal_analysis_expression.git[@7240039fdeb4579afd06bbcb989cb7795bd4c342]"
            TRIPAL_DOWNLOAD_MODULES: ""
            TRIPAL_ENABLE_MODULES: "tripal_analysis_blast tripal_analysis_interpro tripal_analysis_go tripal_rest_api tripal_elasticsearch"
            SITE_NAME: "Genus species"
            ELASTICSEARCH_HOST: elasticsearch.genus_species
            ENABLE_JBROWSE: /jbrowse/?data=data/genus_species_sex
            ENABLE_APOLLO: 0
            ENABLE_BLAST: 1
            ENABLE_DOWNLOAD: 1
            ENABLE_WIKI: 0
            ENABLE_GO: 0
            ENABLE_ORTHOLOGY: 0
            ENABLE_ORTHOLOGY_LINKS: 0
            THEME: "custom_theme"  # Use this to use another theme
            THEME_GIT_CLONE: "custom_git_clone"  # Use this to install another theme
            ADMIN_PASSWORD: custom_tripal_admin_password  # You need to define it and update it in galaxy config below
        networks:
            - traefikbig
            - genus_species
        deploy:
          labels:
            - "traefik.http.routers.genus_species-tripal.rule=(Host(`custom_host`) && PathPrefix(`/sp/genus_species`))"
#            - "traefik.http.routers.genus_species-tripal.tls=true"
#            - "traefik.http.routers.genus_species-tripal.entryPoints=webs"
            - "traefik.http.routers.genus_species-tripal.entryPoints=web" # lg
#            - "traefik.http.routers.genus_species-tripal.middlewares=sp-auth,sp-trailslash,sp-prefix,tripal-addprefix"
            - "traefik.http.routers.genus_species-tripal.middlewares=sp-trailslash,sp-prefix,tripal-addprefix" # lg
            - "traefik.http.services.genus_species-tripal.loadbalancer.server.port=80"
          restart_policy:
            condition: on-failure
            delay: 5s
            max_attempts: 3
            window: 120s

    tripal-db:
        image: quay.io/galaxy-genome-annotation/chado:1.31-jenkins26-pg9.5
        environment:
            - POSTGRES_PASSWORD=postgres
            # The default chado image would try to install the schema on first run,
            # we just want the tools to be available.
            - INSTALL_CHADO_SCHEMA=0
        volumes:
            - ./docker_data/tripal_db/:/var/lib/postgresql/data/
        networks:
            - genus_species

    elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:6.6.1
        #deploy:
          #resources:
            #limits:
              #memory: 500M
        volumes:
            - ./docker_data/elastic_search_index/:/usr/share/elasticsearch/data/
        environment:
            bootstrap.memory_lock: "true"
            xpack.security.enabled: "false"
            xpack.monitoring.enabled: "false"
            xpack.ml.enabled: "false"
            xpack.graph.enabled: "false"
            xpack.watcher.enabled: "false"
            cluster.routing.allocation.disk.threshold_enabled: "false"
            ES_JAVA_OPTS: "-Xms500m -Xmx500m"
            TAKE_FILE_OWNERSHIP: "true"
        networks:
            - genus_species

    galaxy:
        image: quay.io/galaxy-genome-annotation/docker-galaxy-annotation:gmod
        volumes:
            - ../galaxy_data_libs_SI.py:/opt/galaxy_data_libs_SI.py
            #- ./docker_data/galaxy/:/export/  # Commented for testing TODO: Uncomment in production
            - ./src_data/:/project_data/:ro
            #- /groups/XXX/:/groups/XXX/:ro  # We do this when we have symlinks in src_data pointing to /groups/XXX/...
            - ./docker_data/jbrowse/:/jbrowse/data/
            - ./docker_data/apollo/:/apollo-data/
            - ../galaxy_nginx.conf:/etc/nginx/uwsgi_params
        environment:
            NONUSE: nodejs,proftp,reports,condor
            GALAXY_LOGGING: full
            GALAXY_CONFIG_BRAND: "Genus species"
            GALAXY_CONFIG_ALLOW_LIBRARY_PATH_PASTE: "True"
            GALAXY_CONFIG_USE_REMOTE_USER: "True"
            GALAXY_CONFIG_REMOTE_USER_MAILDOMAIN: "sb-roscoff.fr"
            GALAXY_DEFAULT_ADMIN_EMAIL: "custom_galaxy_default_admin_email"
            GALAXY_DEFAULT_ADMIN_USER: "custom_galaxy_defaut_admin_user"
            GALAXY_DEFAULT_ADMIN_PASSWORD: "custom_galaxy_default_admin_password"
            GALAXY_CONFIG_ADMIN_USERS: "admin@galaxy.org, gga@sb-roscoff.fr, lgueguen@sb-roscoff.fr, alebars@sb-roscoff.fr"   # admin@galaxy.org is the default (leave it), gogepp@bipaa is a shared ldap user we use to connect
            GALAXY_CONFIG_MASTER_API_KEY: "custom_galaxy_config_master_api_key"
            ENABLE_FIX_PERMS: 0
            PROXY_PREFIX: /sp/genus_species/galaxy
            GALAXY_TRIPAL_URL: http://tripal.genus_species/tripal/
            GALAXY_TRIPAL_PASSWORD: custom_galaxy_tripal_password  # See tripal config above
            GALAXY_WEBAPOLLO_URL: http://one-of-the-swarm-node:8888/apollo/
            GALAXY_WEBAPOLLO_USER: "custom_galaxy_web_apollo_user"
            GALAXY_WEBAPOLLO_PASSWORD: "custom_galaxy_web_apollo_password"  # See tripal config below
            GALAXY_WEBAPOLLO_EXT_URL: /apollo/
            GALAXY_CHADO_DBHOST: tripal-db.genus_species
            GALAXY_CHADO_DBSCHEMA: chado
            GALAXY_AUTO_UPDATE_DB: 1
            GALAXY_AUTO_UPDATE_CONDA: 1
            GALAXY_AUTO_UPDATE_TOOLS: "/galaxy-central/tools_1.yaml"
            GALAXY_SHARED_DIR: ""
            BLAT_ENABLED: 1
        networks:
            - traefikbig
            - genus_species
        deploy:
          labels:
            - "traefik.http.routers.genus_species-galaxy.rule=(Host(`custom_host`) && PathPrefix(`/sp/genus_species/galaxy`))"
#            - "traefik.http.routers.genus_species-galaxy.tls=true"
#            - "traefik.http.routers.genus_species-galaxy.entryPoints=webs"
            - "traefik.http.routers.genus_species-galaxy.entryPoints=web" #lg
#            - "traefik.http.routers.genus_species-galaxy.middlewares=sp-auth,sp-app-trailslash,sp-app-prefix"
            - "traefik.http.routers.genus_species-galaxy.middlewares=sp-app-trailslash,sp-app-prefix" #lg
            - "traefik.http.services.genus_species-galaxy.loadbalancer.server.port=80"
          restart_policy:
            condition: on-failure
            delay: 5s
            max_attempts: 3
            window: 120s

    jbrowse:
        image: quay.io/galaxy-genome-annotation/jbrowse:v1.16.8
        volumes:
            - ./docker_data/galaxy/:/export/:ro
            - ./src_data/:/project_data/:ro
            #- /groups/XXX/:/groups/XXX/:ro  # We do this when we have symlinks in src_data pointing to /groups/XXX/...
            - ./docker_data/jbrowse/:/jbrowse/data/:ro
        networks:
            - traefikbig
            - genus_species
        deploy:
          labels:
            - "traefik.http.routers.genus_species-jbrowse.rule=(Host(`custom_host`) && PathPrefix(`/sp/genus_species/jbrowse`))"
#            - "traefik.http.routers.genus_species-jbrowse.tls=true"
#            - "traefik.http.routers.genus_species-jbrowse.entryPoints=webs"
            - "traefik.http.routers.genus_species-jbrowse.entryPoints=web" # lg
#            - "traefik.http.routers.genus_species-jbrowse.middlewares=sp-auth,sp-app-trailslash,sp-app-prefix"
            - "traefik.http.routers.genus_species-jbrowse.middlewares=sp-app-trailslash,sp-app-prefix" #lg
            - "traefik.http.services.genus_species-jbrowse.loadbalancer.server.port=80"
          restart_policy:
            condition: on-failure
            delay: 5s
            max_attempts: 3
            window: 120s

    blast:
        image: quay.io/abretaud/sf-blast:latest
        depends_on:
            - blast-db
        environment:
            DB_HOST: blast-db.genus_species
            UPLOAD_LIMIT: 20M
            MEMORY_LIMIT: 128M
            DB_NAME: 'postgres'
            ADMIN_EMAIL: 'g.ga@sb-roscoff.fr'  # email sender
            ADMIN_NAME: 'gga'  # email sender name
            JOBS_METHOD: 'local'   # Can be local (= no sge jobs, but run inside the container) or drmaa (= to submit to a cluster)
            JOBS_WORK_DIR: '/tmp/blast_jobs/'  # disk accessible both from compute nodes and mounted in this docker (at the same path)
            CDD_DELTA_PATH: '/db/cdd_delta/current/flat/cdd_delta'
            BLAST_TITLE: 'Genus species blast server'
            JOBS_SCHED_NAME: 'blast_gspecies'    # job names
            #PRE_CMD: '. /local/env/envblast-2.6.0.sh; . /local/env/envpython-3.7.1.sh;'    # executed at the beginning of each job
            #APACHE_RUN_USER: 'bipaaweb'   # username known by sge
            #APACHE_RUN_GROUP: 'bipaa'   # group known by sge
            BASE_URL_PATH: '/sp/genus_species/blast/'
            UID: 55914  # username known by sge (for drmaa mode only)
            GID: 40259  # group known by sge (for drmaa mode only)
            #JOBS_DRMAA_NATIVE: '-p web' # This line and following for slurm
            #DRMAA_METHOD: 'slurm' # This line and following for slurm
        volumes:
            - ../blast-themes/abims/:/var/www/blast/app/Resources/:ro # You can theme the app
            - /usr/local/genome2/:/usr/local/genome2/:ro # path for blast executables
            - /db/:/db/:ro # for access to indexed blast databases
            #- /data1/sge/:/usr/local/sge/:ro # an sge install
            #- /xxxx/blast_jobs/:/xxxx/blast_jobs/ # (for drmaa mode only)
            - ./blast/banks.yml:/var/www/blast/app/config/banks.yml:ro
            - ./blast/links.yml:/etc/blast_links/links.yml:ro
            #- /data1/slurm/slurm.conf:/etc/slurm-llnl/slurm.conf:ro # This line and following for slurm
            #- /data1/slurm/gres.conf:/etc/slurm-llnl/gres.conf:ro
            #- /data1/slurm/cgroup.conf:/etc/slurm-llnl/cgroup.conf:ro
            #- /data1/slurm/slurmdbd.conf:/etc/slurm-llnl/slurmdbd.conf:ro
            #- /data1/slurm/drmaa/:/etc/slurm-llnl/drmaa/:ro
            #- /etc/munge/:/etc/munge/:ro
        networks:
            - traefikbig
            - genus_species
        deploy:
          labels:
            - "traefik.http.routers.genus_species-blast.rule=(Host(`custom_host`) && PathPrefix(`/sp/genus_species/blast`))"
#            - "traefik.http.routers.genus_species-blast.tls=true"
#            - "traefik.http.routers.genus_species-blast.entryPoints=webs"
            - "traefik.http.routers.genus_species-blast.entryPoints=web" # lg
#            - "traefik.http.routers.genus_species-blast.middlewares=sp-big-req,sp-auth,sp-app-trailslash,sp-app-prefix"
            - "traefik.http.routers.genus_species-blast.middlewares=sp-big-req,sp-app-trailslash,sp-app-prefix" # lg
            - "traefik.http.services.genus_species-blast.loadbalancer.server.port=80"
          restart_policy:
            condition: on-failure
            delay: 5s
            max_attempts: 3
            window: 120s

    blast-db:
#        image: postgres:9.6-alpine
        image: postgres:9.5
        environment:
            - POSTGRES_PASSWORD=postgres
            - PGDATA=/var/lib/postgresql/data/
        volumes:
            - ./docker_data/blast_db/:/var/lib/postgresql/data/
        networks:
            - genus_species

#    wiki:
#        image: quay.io/abretaud/mediawiki
#        environment:
#            MEDIAWIKI_SERVER: http://localhost
#            MEDIAWIKI_PROXY_PREFIX: /sp/genus_species/wiki
#            MEDIAWIKI_SITENAME: Genus species
#            MEDIAWIKI_SECRET_KEY: XXXXXXXXXX
#            MEDIAWIKI_DB_HOST: wiki-db.genus_species
#            MEDIAWIKI_DB_PASSWORD: password
#            MEDIAWIKI_ADMIN_USER: abretaud   # ldap user
#        depends_on:
#            - wiki-db
#        volumes:
#            - ./docker_data/wiki_uploads:/images
#            #- ../bipaa_wiki.png:/var/www/mediawiki/resources/assets/wiki.png:ro # To change the logo at the top left
#        networks:
#            - traefikbig
#            - genus_species
#        deploy:
#          labels:
#            - "traefik.http.routers.genus_species-blast.rule=(Host(`localhost`) && PathPrefix(`/sp/genus_species/blast`))"
#            - "traefik.http.routers.genus_species-blast.tls=true"
#            - "traefik.http.routers.genus_species-blast.entryPoints=webs"
#            - "traefik.http.routers.genus_species-blast.middlewares=sp-big-req,sp-auth,sp-app-trailslash,sp-app-prefix"
#            - "traefik.http.services.genus_species-blast.loadbalancer.server.port=80"
#          restart_policy:
#            condition: on-failure
#            delay: 5s
#            max_attempts: 3
#            window: 120s

#    wiki-db:
#        image: postgres:9.6-alpine
#        volumes:
#            - ./docker_data/wiki_db/:/var/lib/postgresql/data/
#        networks:
#            - genus_species

networks:
    traefikbig:
        external: true
    genus_species:
        driver: overlay
        name: genus_species