version: '3.9' volumes: atlasdb-postgres-data: name: atlasdb-postgres-data rstudio-home-data: name: rstudio-home-data rstudio-tmp-data: name: rstudio-tmp-data services: traefik: image: docker.io/library/traefik:v2.9.4@sha256:4c388f477f5b7aa48420694d90db0ecb96b4ecede60b9b7589c87858abf87b60 container_name: traefik restart: unless-stopped ipc: none read_only: true environment: BROADSEA_HOST: ${BROADSEA_HOST} labels: - "traefik.enable=true" ports: - "80:80" - "443:443" volumes: - ./traefik/traefik-${HTTP_TYPE}.yml:/etc/traefik/traefik.yml:ro - ./traefik/config.yml:/etc/traefik/config.yml:ro - ${BROADSEA_CERTS_FOLDER}:/etc/certs:ro - /var/run/docker.sock:/var/run/docker.sock:ro broadsea-content: profiles: [ "default", "content" ] container_name: broadsea-content image: nginx restart: unless-stopped environment: CONTENT_ARES_DISPLAY: ${CONTENT_ARES_DISPLAY} CONTENT_ATLAS_DISPLAY: ${CONTENT_ATLAS_DISPLAY} CONTENT_HADES_DISPLAY: ${CONTENT_HADES_DISPLAY} volumes: - ./broadsea-content/images:/usr/share/nginx/html/images - ./broadsea-content/style.css:/usr/share/nginx/html/style.css - ./broadsea-content/index.html:/tmp/index.html - ./broadsea-content/envsubst.sh:/tmp/envsubst.sh:ro entrypoint: ["sh", "/tmp/envsubst.sh" ] labels: - "traefik.enable=true" broadsea-hades: profiles: [ "default", "hades" ] container_name: broadsea-hades image: ohdsi/broadsea-hades:4.2.1 platform: "linux/amd64" environment: - USER=${HADES_USER} - PASSWORD=${HADES_PASSWORD} volumes: - rstudio-home-data:/home - rstudio-tmp-data:/tmp labels: - "traefik.enable=true" ports: - "8787:8787" - "6311:6311" # WebAPI and Atlas services based on the standard Docker Hub images ------------- ohdsi-webapi-from-image: profiles: [ "default", "webapi-from-image" ] #image: ghcr.io/venkyvb/webapi-spark:latest image: docker.io/ohdsi/webapi:latest extends: file: "ohdsi-webapi.yml" service: ohdsi-webapi volumes: - ./SparkJDBC42.jar:/var/lib/ohdsi/webapi/WEB-INF/lib/SparkJDBC42.jar ohdsi-atlas-from-image: profiles: [ "default", "atlas-from-image" ] image: docker.io/ohdsi/atlas:latest extends: file: "ohdsi-atlas.yml" service: ohdsi-atlas # WebAPI and Atlas services based on git repo (for developers) ------------- ohdsi-webapi-from-git: profiles: [ "webapi-from-git" ] build: context: ${WEBAPI_GITHUB_URL} args: MAVEN_PARAMS: "-DskipTests=true -DskipUnitTests=true" extends: file: "ohdsi-webapi.yml" service: ohdsi-webapi ohdsi-atlas-from-git: profiles: [ "atlas-from-git" ] build: ${ATLAS_GITHUB_URL} extends: file: "ohdsi-atlas.yml" service: ohdsi-atlas # ----------------------------------------------------------------- broadsea-atlasdb: profiles: [ "default", "atlasdb" ] image: ohdsi/broadsea-atlasdb:2.0.0 container_name: broadsea-atlasdb platform: "linux/amd64" cpus: 2 mem_limit: "2G" environment: - POSTGRES_PASSWORD=mypass ports: - "5432:5432" volumes: - atlasdb-postgres-data:/var/lib/postgresql/data - ./100_populate_source_source_daimon.sql:/docker-entrypoint-initdb.d/100_populate_source_source_daimon.sql:ro healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 10 broadsea-solr-vocab: profiles: [ "solr-vocab-no-import", "solr-vocab-with-import" ] container_name: solr-vocab restart: unless-stopped image: solr:8.11.1 environment: SOLR_OPTS: -DVOCAB_VERSION=${VOCAB_VERSION} -DVOCAB_JDBC_DRIVER_PATH=${VOCAB_JDBC_DRIVER_PATH} -DVOCAB_JDBC_URL=${VOCAB_JDBC_URL} -DVOCAB_JDBC_USER=${VOCAB_JDBC_USER} -DVOCAB_JDBC_PASSWORD=${VOCAB_JDBC_PASSWORD} volumes: - ./${VOCAB_JDBC_FILE_NAME}:/opt/solr-8.11.1/server/lib/${VOCAB_JDBC_FILE_NAME}:ro - ./solr:/tmp/solr_config:ro ports: - "8983:8983" labels: - "traefik.enable=true" command: - solr-precreate - ${VOCAB_VERSION} - /tmp/solr_config healthcheck: test: curl --fail ${SOLR_VOCAB_ENDPOINT} || exit 1 interval: 10s timeout: 5s retries: 5 broadsea-solr-vocab-run-import: profiles: [ "solr-vocab-with-import" ] container_name: solr-vocab-run-import image: curlimages/curl depends_on: broadsea-solr-vocab: condition: service_healthy command: curl -d "vocab_database_schema=${VOCAB_DATABASE_SCHEMA}" \ -X POST ${SOLR_VOCAB_ENDPOINT}/${VOCAB_VERSION}/dataimport?command=full-import&entity=concept broadsea-ares: profiles: [ "ares" ] container_name: broadsea-ares restart: unless-stopped build: context: https://github.com/alondhe/Ares.git#docker # hack until Dockerfile is added to OHDSI/Ares volumes: - ${ARES_DATA_FOLDER}:/usr/share/nginx/html/ares/data:ro labels: - "traefik.enable=true" broadsea-omop-vocab-load: profiles: [ "omop-vocab-pg-load" ] container_name: omop-vocab-load extends: file: "postgres-load.yml" service: broadsea-postgres-load environment: VOCAB_PG_HOST: ${VOCAB_PG_HOST} VOCAB_PG_DATABASE: ${VOCAB_PG_DATABASE} VOCAB_PG_SCHEMA: ${VOCAB_PG_SCHEMA} VOCAB_PG_USER: ${VOCAB_PG_USER} VOCAB_PG_PASSWORD: ${VOCAB_PG_PASSWORD} UMLS_API_KEY: ${UMLS_API_KEY} volumes: - ./omop_vocab:/tmp entrypoint: ["sh", "/tmp/scripts/load_omop_vocab.sh" ] broadsea-phoebe-load: profiles: [ "phoebe-pg-load" ] container_name: broadsea-phoebe-load extends: file: "postgres-load.yml" service: broadsea-postgres-load environment: PHOEBE_PG_HOST: ${PHOEBE_PG_HOST} PHOEBE_PG_DATABASE: ${PHOEBE_PG_DATABASE} PHOEBE_PG_SCHEMA: ${PHOEBE_PG_SCHEMA} PHOEBE_PG_USER: ${PHOEBE_PG_USER} PHOEBE_PG_PASSWORD: ${PHOEBE_PG_PASSWORD} volumes: - ./phoebe:/tmp entrypoint: ["sh", "/tmp/load_phoebe.sh" ]