diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 623b0b24d92f20cfbbc1d7b150a1b513cf178a4d..76f5f529e4de97adfb46c5dc648519d7fd110ed5 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -11,9 +11,9 @@ volumes: broker-service-data: upload-service-data: search-db-data: + storage-service-data: services: - dbrepo-metadata-db: restart: "no" container_name: dbrepo-metadata-db @@ -75,21 +75,6 @@ services: logging: driver: json-file - dbrepo-upload-service: - restart: "no" - container_name: dbrepo-upload-service - hostname: upload-service - image: docker.io/tusproject/tusd:v1.12 - ports: - - "1080:1080" - command: - - "--base-path=/api/upload/files/" - volumes: - - upload-service-data:/data - - "${SHARED_FILESYSTEM:-/tmp}:/srv/tusd-data/data" - logging: - driver: json-file - dbrepo-authentication-service: restart: "no" container_name: dbrepo-authentication-service @@ -192,7 +177,9 @@ services: ports: - "5000:5000" environment: - SHARED_FILESYSTEM: "${SHARED_FILESYSTEM:-/tmp}" + S3_STORAGE_ENDPOINT: "${STORAGE_ENDPOINT:-http://storage-service:9000}" + S3_ACCESS_KEY_ID: "${STORAGE_USERNAME:-minioadmin}" + S3_SECRET_ACCESS_KEY: ${STORAGE_PASSWORD:-minioadmin} volumes: - "${SHARED_FILESYSTEM:-/tmp}:/tmp" healthcheck: @@ -261,6 +248,26 @@ services: FLASK_DEBUG: ${SEARCH_DEBUG_MODE:-true} OPENSEARCH_HOST: ${OPENSEARCH_HOST:-dbrepo-search-db} + dbrepo-data-db-sidecar: + restart: "no" + container_name: dbrepo-data-db-sidecar + hostname: data-db-sidecar + image: docker.io/dbrepo/data-db-sidecar:latest + ports: + - "3305:3305" + environment: + FLASK_DEBUG: ${SEARCH_DEBUG_MODE:-true} + S3_STORAGE_ENDPOINT: "${STORAGE_ENDPOINT:-http://storage-service:9000}" + S3_ACCESS_KEY_ID: "${STORAGE_USERNAME:-minioadmin}" + S3_SECRET_ACCESS_KEY: ${STORAGE_PASSWORD:-minioadmin} + volumes: + - "${SHARED_FILESYSTEM:-/tmp}:/tmp" + healthcheck: + test: curl -sSL 127.0.0.1:5000/health | jq .status | grep "UP" || exit 1 + interval: 10s + timeout: 5s + retries: 12 + dbrepo-ui: restart: "no" container_name: dbrepo-ui @@ -281,14 +288,17 @@ services: ICON: "${ICON:-/favicon.ico}" DBREPO_CLIENT_ID: "${DBREPO_CLIENT_ID:-dbrepo-client}" DBREPO_CLIENT_SECRET: "${DBREPO_CLIENT_SECRET:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}" - UPLOAD_PATH: "${UPLOAD_PATH:-/tmp/}" + S3_STORAGE_HOSTNAME: "${STORAGE_HOSTNAME:-storage-service}" + S3_STORAGE_PORT: "${STORAGE_PORT:-9000}" + S3_ACCESS_KEY_ID: "${STORAGE_USERNAME:-minioadmin}" + S3_SECRET_ACCESS_KEY: ${STORAGE_PASSWORD:-minioadmin} FORCE_SSL: "${FORCE_SSL:-false}" DOI_URL: "${DOI_URL:-https://doi.org}" depends_on: dbrepo-search-service: condition: service_started - dbrepo-upload-service: - condition: service_started + dbrepo-storage-service: + condition: service_healthy logging: driver: json-file @@ -333,6 +343,43 @@ services: logging: driver: json-file + dbrepo-search-db-init: + restart: "no" + container_name: dbrepo-search-db-init + hostname: search-db-init + image: docker.io/dbrepo/search-db-init:latest + environment: + OPENSEARCH_HOST: ${SEARCH_DB_HOST:-http://search-db:9200} + CURL_EXTRA_ARGS: ${SEARCH_DB_EXTRA_ARGS:-} + depends_on: + dbrepo-search-db: + condition: service_healthy + logging: + driver: json-file + + dbrepo-storage-service: + restart: "no" + container_name: dbrepo-storage-service + hostname: storage-service + image: docker.io/bitnami/minio:2023-debian-11 + environment: + MINIO_ROOT_USER: "${STORAGE_USERNAME:-minioadmin}" + MINIO_ROOT_PASSWORD: "${STORAGE_PASSWORD:-minioadmin}" + MINIO_DEFAULT_BUCKETS: "${STORAGE_DBREPO_BUCKET:-dbrepo-upload:upload,dbrepo-download:download}" + MINIO_REGION_NAME: "${STORAGE_REGION_NAME:-eu-west-1}" + MINIO_BROWSER_REDIRECT_URL: "${STORAGE_BASE_URL:-http://localhost/admin/storage/}" + ports: + - 9000:9000 + healthcheck: + test: [ "CMD", "mc", "ready", "local" ] + interval: 5s + timeout: 5s + retries: 5 + volumes: + - storage-service-data:/bitnami/minio/data + logging: + driver: json-file + dbrepo-mirror-service: restart: "no" container_name: dbrepo-mirror-service diff --git a/docker-compose.yml b/docker-compose.yml index 7bfcf542651f4d11f22882ff1ba0dcdb399ade46..623b0b24d92f20cfbbc1d7b150a1b513cf178a4d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,18 +11,17 @@ volumes: broker-service-data: upload-service-data: search-db-data: - storage-service-data: services: + dbrepo-metadata-db: restart: "no" container_name: dbrepo-metadata-db hostname: metadata-db - image: dbrepo-metadata-db:latest - build: ./dbrepo-metadata-db + image: docker.io/dbrepo/metadata-db:latest volumes: - metadata-db-data:/bitnami/mariadb - - ./dbrepo-metadata-db/setup-schema_local.sql:/docker-entrypoint-initdb.d/setup-schema_local.sql + - ./dist/setup-schema_local.sql:/docker-entrypoint-initdb.d/setup-schema_local.sql ports: - "3306:3306" environment: @@ -76,12 +75,26 @@ services: logging: driver: json-file + dbrepo-upload-service: + restart: "no" + container_name: dbrepo-upload-service + hostname: upload-service + image: docker.io/tusproject/tusd:v1.12 + ports: + - "1080:1080" + command: + - "--base-path=/api/upload/files/" + volumes: + - upload-service-data:/data + - "${SHARED_FILESYSTEM:-/tmp}:/srv/tusd-data/data" + logging: + driver: json-file + dbrepo-authentication-service: restart: "no" container_name: dbrepo-authentication-service hostname: authentication-service - image: dbrepo-authentication-service:latest - build: ./dbrepo-authentication-service + image: docker.io/dbrepo/authentication-service:latest ports: - "8443:8443" - "8080:8080" @@ -106,8 +119,7 @@ services: restart: "no" container_name: dbrepo-metadata-service hostname: metadata-service - image: dbrepo-metadata-service:latest - build: ./dbrepo-metadata-service + image: docker.io/dbrepo/metadata-service:latest volumes: - "${SHARED_FILESYSTEM:-/tmp}:/tmp" ports: @@ -176,14 +188,11 @@ services: restart: "no" container_name: dbrepo-analyse-service hostname: analyse-service - image: dbrepo-analyse-service:latest - build: ./dbrepo-analyse-service + image: docker.io/dbrepo/analyse-service:latest ports: - "5000:5000" environment: - S3_STORAGE_ENDPOINT: "${STORAGE_ENDPOINT:-http://storage-service:9000}" - S3_ACCESS_KEY_ID: "${STORAGE_USERNAME:-minioadmin}" - S3_SECRET_ACCESS_KEY: ${STORAGE_PASSWORD:-minioadmin} + SHARED_FILESYSTEM: "${SHARED_FILESYSTEM:-/tmp}" volumes: - "${SHARED_FILESYSTEM:-/tmp}:/tmp" healthcheck: @@ -203,11 +212,11 @@ services: - "5672:5672" - "15672:15672" volumes: - - ./dbrepo-broker-service/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf - - ./dbrepo-broker-service/enabled_plugins:/etc/rabbitmq/enabled_plugins - - ./dbrepo-broker-service/cert.pem:/app/cert.pem - - ./dbrepo-broker-service/pubkey.pem:/app/pubkey.pem - - ./dbrepo-broker-service/definitions.json:/app/definitions.json + - ./dist/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf + - ./dist/enabled_plugins:/etc/rabbitmq/enabled_plugins + - ./dist/cert.pem:/app/cert.pem + - ./dist/pubkey.pem:/app/pubkey.pem + - ./dist/definitions.json:/app/definitions.json - broker-service-data:/bitnami/rabbitmq/mnesia healthcheck: test: rabbitmq-diagnostics -q is_running | grep 'is fully booted and running' @@ -221,8 +230,7 @@ services: restart: "no" container_name: dbrepo-search-db hostname: search-db - image: dbrepo-search-db:latest - build: ./dbrepo-search-db + image: docker.io/dbrepo/search-db:latest ports: - "9200:9200" healthcheck: @@ -246,41 +254,18 @@ services: restart: "no" container_name: dbrepo-search-service hostname: search-service - build: ./dbrepo-search-service - image: dbrepo-search-service:latest + image: docker.io/dbrepo/search-service:latest ports: - "4000:4000" environment: FLASK_DEBUG: ${SEARCH_DEBUG_MODE:-true} OPENSEARCH_HOST: ${OPENSEARCH_HOST:-dbrepo-search-db} - dbrepo-data-db-sidecar: - restart: "no" - container_name: dbrepo-data-db-sidecar - hostname: data-db-sidecar - build: ./dbrepo-data-db/sidecar - image: dbrepo-data-db-sidecar:latest - ports: - - "3305:3305" - environment: - FLASK_DEBUG: ${SEARCH_DEBUG_MODE:-true} - S3_STORAGE_ENDPOINT: "${STORAGE_ENDPOINT:-http://storage-service:9000}" - S3_ACCESS_KEY_ID: "${STORAGE_USERNAME:-minioadmin}" - S3_SECRET_ACCESS_KEY: ${STORAGE_PASSWORD:-minioadmin} - volumes: - - "${SHARED_FILESYSTEM:-/tmp}:/tmp" - healthcheck: - test: curl -sSL 127.0.0.1:5000/health | jq .status | grep "UP" || exit 1 - interval: 10s - timeout: 5s - retries: 12 - dbrepo-ui: restart: "no" container_name: dbrepo-ui hostname: ui - image: dbrepo-ui - build: ./dbrepo-ui + image: docker.io/dbrepo/ui:latest environment: BROKER_USERNAME: "${BROKER_USERNAME:-fda}" BROKER_PASSWORD: "${BROKER_PASSWORD:-fda}" @@ -296,17 +281,14 @@ services: ICON: "${ICON:-/favicon.ico}" DBREPO_CLIENT_ID: "${DBREPO_CLIENT_ID:-dbrepo-client}" DBREPO_CLIENT_SECRET: "${DBREPO_CLIENT_SECRET:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}" - S3_STORAGE_HOSTNAME: "${STORAGE_HOSTNAME:-storage-service}" - S3_STORAGE_PORT: "${STORAGE_PORT:-9000}" - S3_ACCESS_KEY_ID: "${STORAGE_USERNAME:-minioadmin}" - S3_SECRET_ACCESS_KEY: ${STORAGE_PASSWORD:-minioadmin} + UPLOAD_PATH: "${UPLOAD_PATH:-/tmp/}" FORCE_SSL: "${FORCE_SSL:-false}" DOI_URL: "${DOI_URL:-https://doi.org}" depends_on: dbrepo-search-service: condition: service_started - dbrepo-storage-service: - condition: service_healthy + dbrepo-upload-service: + condition: service_started logging: driver: json-file @@ -319,7 +301,7 @@ services: - "80:80" - "443:443" volumes: - - ./dbrepo-gateway-service/dbrepo.conf:/etc/nginx/conf.d/default.conf + - ./dist/dbrepo.conf:/etc/nginx/conf.d/default.conf depends_on: dbrepo-analyse-service: condition: service_healthy @@ -342,7 +324,7 @@ services: hostname: search-db-dashboard image: docker.io/opensearchproject/opensearch-dashboards:2.10.0 volumes: - - ./dbrepo-search-db/opensearch_dashboards.yml:/usr/share/opensearch-dashboards/config/opensearch_dashboards.yml + - ./dist/opensearch_dashboards.yml:/usr/share/opensearch-dashboards/config/opensearch_dashboards.yml ports: - "5601:5601" depends_on: @@ -351,50 +333,11 @@ services: logging: driver: json-file - dbrepo-search-db-init: - restart: "no" - container_name: dbrepo-search-db-init - hostname: search-db-init - image: dbrepo-search-db-init:latest - build: ./dbrepo-search-db/init - environment: - OPENSEARCH_HOST: ${SEARCH_DB_HOST:-http://search-db:9200} - CURL_EXTRA_ARGS: ${SEARCH_DB_EXTRA_ARGS:-} - depends_on: - dbrepo-search-db: - condition: service_healthy - logging: - driver: json-file - - dbrepo-storage-service: - restart: "no" - container_name: dbrepo-storage-service - hostname: storage-service - image: docker.io/bitnami/minio:2023-debian-11 - environment: - MINIO_ROOT_USER: "${STORAGE_USERNAME:-minioadmin}" - MINIO_ROOT_PASSWORD: "${STORAGE_PASSWORD:-minioadmin}" - MINIO_DEFAULT_BUCKETS: "${STORAGE_DBREPO_BUCKET:-dbrepo-upload:upload,dbrepo-download:download}" - MINIO_REGION_NAME: "${STORAGE_REGION_NAME:-eu-west-1}" - MINIO_BROWSER_REDIRECT_URL: "${STORAGE_BASE_URL:-http://localhost/admin/storage/}" - ports: - - 9000:9000 - healthcheck: - test: [ "CMD", "mc", "ready", "local" ] - interval: 5s - timeout: 5s - retries: 5 - volumes: - - storage-service-data:/bitnami/minio/data - logging: - driver: json-file - dbrepo-mirror-service: restart: "no" container_name: dbrepo-mirror-service hostname: mirror-service - build: ./dbrepo-mirror-service - image: dbrepo-mirror-service + image: docker.io/dbrepo/mirror-service:latest ports: - "9050:9050" environment: @@ -424,8 +367,7 @@ services: restart: "no" container_name: dbrepo-data-service hostname: data-service - build: ./dbrepo-data-service - image: dbrepo-data-service + image: docker.io/dbrepo/data-service:latest ports: - "9093:9093" environment: