-
Loraine Gueguen authoredd50be66a
gspecies_compose.yml.j2 14.52 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(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/download`))"
{% if https_port is defined and https_port %}
- "traefik.http.routers.{{ genus_species }}-nginx.tls=true"
- "traefik.http.routers.{{ genus_species }}-nginx.entryPoints=webs"
- "traefik.http.routers.{{ genus_species }}-nginx.middlewares=sp-auth,sp-app-trailslash,sp-prefix"
{% else %}
- "traefik.http.routers.{{ genus_species }}-nginx.entryPoints=web"
- "traefik.http.routers.{{ genus_species }}-nginx.middlewares=sp-app-trailslash,sp-prefix"
{% endif %}
- "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
{% if tripal_banner_path is defined and tripal_banner_path %}
- ./banner.png:/var/www/html/banner.png:ro
{% endif %}
#- /groups/XXX/:/groups/XXX/:ro # We do this when we have symlinks in src_data pointing to /groups/XXX/...
{% if picture_path is defined and picture_path %}
{% if 'png' in picture_path %}
- ./species.png:/var/www/html/species.png:ro
{% endif %}
{% if 'jpg' in picture_path %}
- ./species.jpg:/var/www/html/species.jpg:ro
{% endif %}
{% endif %}
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_strain_sex }}
ENABLE_APOLLO: 0
ENABLE_BLAST: {{ blast }}
ENABLE_DOWNLOAD: 1
ENABLE_WIKI: 0
ENABLE_GO: {{ go }}
ENABLE_ORTHOLOGY: 0
ENABLE_ORTHOLOGY_LINKS: 0
THEME: "{{ tripal_theme_name }}" # Use this to use another theme
THEME_GIT_CLONE: "{{ tripal_theme_git_clone }}" # Use this to install another theme
ADMIN_PASSWORD: {{ tripal_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(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}`))"
{% if https_port is defined and https_port %}
- "traefik.http.routers.{{ genus_species }}-tripal.tls=true"
- "traefik.http.routers.{{ genus_species }}-tripal.entryPoints=webs"
- "traefik.http.routers.{{ genus_species }}-tripal.middlewares=sp-auth,sp-trailslash,sp-prefix,tripal-addprefix"
{% else %}
- "traefik.http.routers.{{ genus_species }}-tripal.entryPoints=web"
- "traefik.http.routers.{{ genus_species }}-tripal.middlewares=sp-trailslash,sp-prefix,tripal-addprefix"
{% endif %}
- "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
volumes:
- ./docker_data/elastic_search_index/:/usr/share/elasticsearch/data/
environment:
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:
{% if (galaxy_persist_data is defined and galaxy_persist_data) and (galaxy_persist_data == "False") %}
#- ./docker_data/galaxy/:/export/
{% else %}
- ./docker_data/galaxy/:/export/
{% endif %}
- ./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: "{{ galaxy_config_remote_user_maildomain }}"
GALAXY_DEFAULT_ADMIN_EMAIL: "{{ galaxy_default_admin_email }}"
GALAXY_DEFAULT_ADMIN_USER: "{{ galaxy_default_admin_user }}"
GALAXY_DEFAULT_ADMIN_PASSWORD: "{{ galaxy_default_admin_password }}"
GALAXY_CONFIG_ADMIN_USERS: "admin@galaxy.org,{{ galaxy_default_admin_email }}" # admin@galaxy.org is the default (leave it), galaxy_default_admin_email is a shared ldap user we use to connect
ENABLE_FIX_PERMS: 0
PROXY_PREFIX: /sp/{{ genus_species }}/galaxy
GALAXY_TRIPAL_URL: http://tripal.{{ genus_species }}/tripal/
GALAXY_TRIPAL_PASSWORD: {{ tripal_password }} # See tripal config above
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(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
{% if https_port is defined and https_port %}
- "traefik.http.routers.{{ genus_species }}-galaxy.tls=true"
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=webs"
- "traefik.http.routers.{{ genus_species }}-galaxy.middlewares=sp-auth,sp-app-trailslash,sp-app-prefix"
{% else %}
- "traefik.http.routers.{{ genus_species }}-galaxy.entryPoints=web"
- "traefik.http.routers.{{ genus_species }}-galaxy.middlewares=sp-app-trailslash,sp-app-prefix"
{% endif %}
- "traefik.http.services.{{ genus_species }}-galaxy.loadbalancer.server.port=80"
- "traefik.http.routers.{{ genus_species }}-gga_load-galaxy.rule=(Host(`localhost`) && PathPrefix(`/sp/{{ genus_species }}/galaxy`))"
- "traefik.http.routers.{{ genus_species }}-gga_load-galaxy.entryPoints=web"
- "traefik.http.routers.{{ genus_species }}-gga_load-galaxy.middlewares=sp-app-trailslash,sp-app-prefix"
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(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/jbrowse`))"
{% if https_port is defined and https_port %}
- "traefik.http.routers.{{ genus_species }}-jbrowse.tls=true"
- "traefik.http.routers.{{ genus_species }}-jbrowse.entryPoints=webs"
- "traefik.http.routers.{{ genus_species }}-jbrowse.middlewares=sp-auth,sp-app-trailslash,sp-app-prefix"
{% else %}
- "traefik.http.routers.{{ genus_species }}-jbrowse.entryPoints=web"
- "traefik.http.routers.{{ genus_species }}-jbrowse.middlewares=sp-app-trailslash,sp-app-prefix"
{% endif %}
- "traefik.http.services.{{ genus_species }}-jbrowse.loadbalancer.server.port=80"
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
{% if blast is defined and blast and blast == 1 %}
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@domain.org' # 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/my_theme/:/var/www/blast/app/Resources/:ro # You can theme the app
- /path/to/blast/exe/:/path/to/blast/exe/: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(`{{ hostname }}`) && PathPrefix(`/sp/{{ genus_species }}/blast`))"
{% if https_port is defined and https_port %}
- "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"
{% else %}
- "traefik.http.routers.{{ genus_species }}-blast.entryPoints=web"
- "traefik.http.routers.{{ genus_species }}-blast.middlewares=sp-big-req,sp-app-trailslash,sp-app-prefix"
{% endif %}
- "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.5
environment:
- POSTGRES_PASSWORD=postgres
- PGDATA=/var/lib/postgresql/data/
volumes:
- ./docker_data/blast_db/:/var/lib/postgresql/data/
networks:
- {{ genus_species }}
{% endif %}
networks:
traefikbig:
external: true
{{ genus_species }}:
driver: overlay
name: {{ genus_species }}