diff --git a/docker-compose.yml b/docker-compose.yml index 943dafd..c591afd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,397 +1,397 @@ version: '2' services: amqp: image: rabbitmq:3.6-management ports: - 5072:5672 flower: image: mher/flower command: --broker=amqp://guest:guest@amqp:5672// --url_prefix=flower ports: - 5055:5555 depends_on: - amqp zookeeper: image: wurstmeister/zookeeper kafka: image: wurstmeister/kafka ports: - 5092:9092 env_file: ./kafka.env depends_on: - zookeeper nginx: image: nginx volumes: - "./nginx.conf:/etc/nginx/nginx.conf:ro" ports: - - 5080:80 + - 5080:5080 # Scheduler swh-scheduler-db: image: postgres:10 environment: POSTGRES_PASSWORD: testpassword POSTGRES_DB: swh-scheduler swh-scheduler-api: image: swh/scheduler-api build: ./dockerfiles/swh-scheduler-api env_file: ./scheduler.env depends_on: - swh-scheduler-db ports: - 5008:5008 swh-scheduler-listener: image: swh/scheduler-worker build: ./dockerfiles/swh-scheduler-worker env_file: ./scheduler.env command: listener depends_on: - swh-scheduler-api - amqp swh-scheduler-runner: image: swh/scheduler-worker build: ./dockerfiles/swh-scheduler-worker env_file: ./scheduler.env command: runner -p 10 depends_on: - swh-scheduler-api - amqp # Graph storage swh-storage-db: image: postgres:10 environment: POSTGRES_PASSWORD: testpassword POSTGRES_DB: swh-storage swh-storage: build: ./dockerfiles/swh-storage image: swh/storage ports: - 5002:5002 depends_on: - swh-storage-db - swh-objstorage env_file: ./storage.env # Object storage swh-objstorage: build: ./dockerfiles/swh-objstorage image: swh/objstorage ports: - 5003:5003 # Indexer storage swh-idx-storage-db: image: postgres:10 environment: POSTGRES_PASSWORD: testpassword POSTGRES_DB: swh-idx-storage swh-idx-storage: build: ./dockerfiles/swh-indexer-storage image: swh/indexer-storage ports: - 5007:5007 depends_on: - swh-idx-storage-db environment: POSTGRES_PASSWORD: testpassword POSTGRES_DB: swh-idx-storage PGHOST: swh-idx-storage-db PGUSER: postgres # Web interface swh-web: build: ./dockerfiles/swh-web image: swh/web ports: - 5004:5004 depends_on: - swh-objstorage - swh-storage - swh-idx-storage swh-deposit-db: image: postgres:10 env_file: ./deposit.env swh-deposit: build: ./dockerfiles/swh-deposit image: swh/deposit ports: - 5006:5006 depends_on: - swh-deposit-db - swh-scheduler-api env_file: ./deposit.env environment: PGHOST: swh-deposit-db # Lister Celery workers swh-listers-db: image: postgres:10 environment: POSTGRES_PASSWORD: testpassword swh-lister-debian: image: swh/listers-worker build: ./dockerfiles/swh-listers-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: debian depends_on: - swh-listers-db - swh-scheduler-api - swh-scheduler-runner - swh-storage - amqp swh-lister-bitbucket: image: swh/listers-worker build: ./dockerfiles/swh-listers-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: bitbucket depends_on: - swh-listers-db - swh-scheduler-api - swh-scheduler-runner - swh-storage - amqp swh-lister-github: image: swh/listers-worker build: ./dockerfiles/swh-listers-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: github depends_on: - swh-listers-db - swh-scheduler-api - swh-scheduler-runner - swh-storage - amqp swh-lister-gitlab: image: swh/listers-worker build: ./dockerfiles/swh-listers-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: gitlab depends_on: - swh-listers-db - swh-scheduler-api - swh-scheduler-runner - swh-storage - amqp swh-lister-npm: image: swh/listers-worker build: ./dockerfiles/swh-listers-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: npm depends_on: - swh-listers-db - swh-scheduler-api - swh-scheduler-runner - swh-storage - amqp swh-lister-pypi: image: swh/listers-worker build: ./dockerfiles/swh-listers-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: pypi depends_on: - swh-listers-db - swh-scheduler-api - swh-scheduler-runner - swh-storage - amqp # Indexer Celery workers swh-indexer-mimetype: image: swh/indexer-worker build: ./dockerfiles/swh-indexer-worker env_file: ./indexers.env environment: SWH_WORKER_INSTANCE: content_mimetype depends_on: - swh-scheduler-runner - swh-idx-storage - swh-storage - swh-objstorage - amqp swh-indexer-license: image: swh/indexer-worker build: ./dockerfiles/swh-indexer-worker env_file: ./indexers.env environment: SWH_WORKER_INSTANCE: content_fossology_license depends_on: - swh-scheduler-runner - swh-idx-storage - swh-storage - swh-objstorage - amqp swh-indexer-origin-head: image: swh/indexer-worker build: ./dockerfiles/swh-indexer-worker env_file: ./indexers.env environment: SWH_WORKER_INSTANCE: origin_head depends_on: - swh-scheduler-api - swh-scheduler-runner - swh-idx-storage - swh-storage - amqp swh-indexer-revision-metadata: image: swh/indexer-worker build: ./dockerfiles/swh-indexer-worker env_file: ./indexers.env environment: SWH_WORKER_INSTANCE: revision_metadata depends_on: - swh-scheduler-runner - swh-idx-storage - swh-storage - swh-objstorage - amqp swh-indexer-origin-intrinsic-metadata: image: swh/indexer-worker build: ./dockerfiles/swh-indexer-worker env_file: ./indexers.env environment: SWH_WORKER_INSTANCE: origin_intrinsic_metadata depends_on: - swh-scheduler-runner - swh-idx-storage - swh-storage - amqp swh-indexer-journal-client: image: swh/indexer-journal-client build: ./dockerfiles/swh-indexer-journal-client depends_on: - swh-journal-publisher - swh-scheduler-api # Journal related swh-storage-listener: image: swh/storage-listener build: ./dockerfiles/swh-storage-listener env_file: ./storage.env depends_on: - swh-storage-db - kafka swh-journal-publisher: image: swh/journal-publisher build: ./dockerfiles/swh-journal-publisher depends_on: - kafka - swh-storage-listener swh-journal-client: image: swh/journal-client build: ./dockerfiles/swh-journal-client depends_on: - swh-journal-publisher # Loader Celery workers swh-loader-debian: image: swh/loaders-worker build: ./dockerfiles/swh-loaders-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: debian depends_on: - swh-storage - amqp swh-loader-dir: image: swh/loaders-worker build: ./dockerfiles/swh-loaders-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: dir depends_on: - swh-storage - amqp swh-loader-git: image: swh/loaders-worker build: ./dockerfiles/swh-loaders-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: git depends_on: - swh-storage - amqp swh-loader-mercurial: image: swh/loaders-worker build: ./dockerfiles/swh-loaders-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: mercurial depends_on: - swh-storage - amqp swh-loader-pypi: image: swh/loaders-worker build: ./dockerfiles/swh-loaders-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: pypi depends_on: - swh-storage - amqp swh-loader-svn: image: swh/loaders-worker build: ./dockerfiles/swh-loaders-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: svn depends_on: - swh-storage - amqp swh-loader-tar: image: swh/loaders-worker build: ./dockerfiles/swh-loaders-worker env_file: ./listers.env environment: SWH_WORKER_INSTANCE: tar depends_on: - swh-storage - amqp diff --git a/nginx.conf b/nginx.conf index d9ac9b0..d2061ad 100644 --- a/nginx.conf +++ b/nginx.conf @@ -1,90 +1,92 @@ worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # Built-in Docker resolver. Needed to allow on-demand resolution of proxy # upstreams. resolver 127.0.0.11 valid=30s; server { - # Add a trailing slash to top level requests (e.g. http://localhost/flower) + listen 5080 default_server; + + # Add a trailing slash to top level requests (e.g. http://localhost:5080/flower) rewrite ^/([^/]+)$ /$1/ permanent; # In this pile of proxies, all upstreams are set using a variable. This # makes nginx DNS-resolve the name of the upstream when clients request # them, rather than on start. This avoids an unstarted container preventing # nginx from starting. # # Variables need to be set as early as possible, as they're statements from # the rewrite module and `rewrite [...] break;` will prevent these # statements from being executed. location /flower/ { set $upstream "http://flower:5555"; rewrite ^/flower/(.*)$ /$1 break; proxy_pass $upstream; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /rabbitmq/ { set $upstream "http://amqp:15672"; rewrite ^/rabbitmq/(.*)$ /$1 break; proxy_pass $upstream; } location /scheduler { set $upstream "http://swh-scheduler-api:5008"; rewrite ^/scheduler/(.*)$ /$1 break; proxy_pass $upstream; } location /storage { set $upstream "http://swh-storage:5002"; rewrite ^/storage/(.*)$ /$1 break; proxy_pass $upstream; } location /indexer-storage { set $upstream "http://swh-idx-storage:5007"; rewrite ^/indexer-storage/(.*)$ /$1 break; proxy_pass $upstream; } location /deposit { set $upstream "http://swh-deposit:5006"; rewrite ^/deposit/(.*)$ /$1 break; proxy_pass $upstream; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_redirect off; } location /objstorage { set $upstream "http://swh-objstorage:5003"; rewrite ^/objstorage/(.*)$ /$1 break; proxy_pass $upstream; } location / { set $upstream "http://swh-web:5004"; proxy_pass $upstream; } } }