diff --git a/docker-compose.override.yml b/docker-compose.override.yml new file mode 100644 index 0000000..644b51b --- /dev/null +++ b/docker-compose.override.yml @@ -0,0 +1,27 @@ +version: "3" +services: + + # Node.js server for the Web viewer and annotation tool + webviewer: + ports: + - 3000:3000 + - 9229:9229 + command: ["node", "--inspect=0.0.0.0:9229", "app.js"] + volumes: + - ./desuto-viewer/Desuto-webviewer:/usr/src/app + + # IIPImage server for generating the image patches + iipsrv: + build: ./desuto-iipsrv + volumes: + - ${SLIDEVIEWERDATA_LOCAL_PATH}:/slideviewerdata + + # Python server for getting slide properties using openslide + slideprops: + build: ./desuto-slideproperties + volumes: + - ${SLIDEVIEWERDATA_LOCAL_PATH}:/slideviewerdata + +# Shared volume for uploaded images +volumes: + upload-volume: diff --git a/docker-compose.yml b/docker-compose.yml index 070ed60..c39e99c 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,116 +1,133 @@ version: "3" services: # Proxy facade for all services proxy: build: ./desuto-proxy depends_on: - mysql - couchdb - uploads - images - paradise-gf - retrieval - webviewer - iipsrv - slideprops ports: - 80:80 # MySQL server for storing image information (URLs, modalities, etc.) mysql: image: mariadb restart: always environment: MYSQL_ROOT_PASSWORD: $$MARIA-15-mysql! MYSQL_DATABASE: paradise MYSQL_USER: paradise MYSQL_PASSWORD: $$PWDforParaD1SE! volumes: - ./data/all-dmli-pubmed-info.sql:/docker-entrypoint-initdb.d/dump.sql expose: - 3306 # CouchDB server for storing image annotation data couchdb: build: ./desuto-couchdb - restart: always - expose: - - 5984 + environment: + - COUCHDB_USER=${COUCHDB_ADMIN_USER} + - COUCHDB_PASSWORD=${COUCHDB_ADMIN_PASS} + - COUCHDB_PROTOCOL=${COUCHDB_PROTOCOL} + - COUCHDB_HOST=${COUCHDB_HOST} + - COUCHDB_PORT=${COUCHDB_PORT} + - COUCHDB_DB_NAME=${COUCHDB_DB_NAME} + ports: + - 5984:5984 # nginx server for serving images that are uploaded to the retrieval interface uploads: image: nginx:alpine restart: always volumes: - upload-volume:/usr/share/nginx/html/uploads/:ro expose: - 80 # nginx server for serving images (patches) contained in the visual indices images: image: nginx:alpine restart: always volumes: - ./data/images/:/usr/share/nginx/html/images/:ro expose: - 80 # GlassFish application server hosting the ParaDISE engine and WebServices paradise-gf: build: ./paradise-gf volumes: - upload-volume:/uploads/ - ./data/paradise-files/:/data/paradise environment: - ADMIN_PASSWORD=$$pWd4glassF1SH! expose: - 8080 - 4848 # Apache server for the retrieval interface retrieval: build: context: ./desuto-retrieval args: - PARADISE_ROOT_URL=${PARADISE_ROOT_URL} - IIP_ROOT_URL=${IIP_ROOT_URL} - VIEWER_ROOT_URL=${VIEWER_ROOT_URL} - SLIDEPROPS_ROOT_URL=${SLIDEPROPS_ROOT_URL} restart: always volumes: - ${SLIDEVIEWERDATA_LOCAL_PATH}:/slideviewerdata expose: - 80 # Node.js server for the Web viewer and annotation tool webviewer: build: context: ./desuto-viewer args: - - RETRIEVAL_INTERFACE_ROOT_URL=${RETRIEVAL_INTERFACE_ROOT_URL} + - RETRIEVAL_ROOT_URL=${RETRIEVAL_ROOT_URL} - PARADISE_ROOT_URL=${PARADISE_ROOT_URL} - IIP_ROOT_URL=${IIP_ROOT_URL} - SLIDEPROPS_ROOT_URL=${SLIDEPROPS_ROOT_URL} - - COUCHDB_FRONTEND_ROOT_URL=${COUCHDB_FRONTEND_ROOT_URL} + - COUCHDB_ROOT_URL=${COUCHDB_ROOT_URL} - COUCHDB_BACKEND_ROOT_URL=${COUCHDB_BACKEND_ROOT_URL} + - COUCHDB_DB_NAME=${COUCHDB_DB_NAME} + - WSI_BASE_DIR=${WSI_BASE_DIR} + environment: + - ROOT_URL=${VIEWER_ROOT_URL} + - COUCHDB_ROOT_URL=${COUCHDB_ROOT_URL} + - COUCHDB_BACKEND_ROOT_URL=${COUCHDB_BACKEND_ROOT_URL} + - TEMP_DIR=${TEMP_DIR} + - WSI_BASE_DIR=${WSI_BASE_DIR} + - WSI_UPLOADED_DIR=${WSI_UPLOADED_DIR} + - WSI_CONVERTED_DIR=${WSI_CONVERTED_DIR} + - WSI_OVERLAYS_DIR=${WSI_OVERLAYS_DIR} volumes: - ${SLIDEVIEWERDATA_LOCAL_PATH}:/slideviewerdata expose: - 3000 # IIPImage server for generating the image patches iipsrv: build: ./desuto-iipsrv volumes: - ${SLIDEVIEWERDATA_LOCAL_PATH}:/slideviewerdata # Python server for getting slide properties using openslide slideprops: build: ./desuto-slideproperties volumes: - ${SLIDEVIEWERDATA_LOCAL_PATH}:/slideviewerdata # Shared volume for uploaded images volumes: upload-volume: