diff --git a/docker-compose.yml b/docker-compose.yml index 025aa31..2230330 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,131 +1,132 @@ version: "3.7" services: memcache: image: memcached deploy: replicas: 1 db-storage: image: postgres:11 deploy: replicas: 1 placement: constraints: - node.role == manager + command: ['-c', 'shared_buffers=2GB', '-c', 'effective_cache_size=2GB', '-c', 'random_page_cost=1.5'] environment: POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password POSTGRES_USER: swh volumes: - "storage:/var/lib/postgresql/data" secrets: - source: postgres-password uid: '999' mode: 0400 web: image: softwareheritage/web:latest configs: - source: web target: /etc/softwareheritage/config.yml command: - serve environment: PORT: "5004" depends_on: - memcache objstorage: image: softwareheritage/base:latest deploy: replicas: 1 placement: constraints: - node.role == manager volumes: - "objstorage:/srv/softwareheritage/objects" configs: - source: objstorage target: /etc/softwareheritage/config.yml environment: PORT: "5003" STATSD_HOST: prometheus-statsd-exporter STATSD_PORT: 9125 command: - objstorage storage: image: softwareheritage/base:latest configs: - source: storage target: /etc/softwareheritage/config.yml environment: PGHOST: db-storage PORT: "5002" STATSD_HOST: prometheus-statsd-exporter STATSD_PORT: 9125 command: - storage depends_on: - db-storage secrets: - source: postgres-password mode: 0400 nginx: image: nginx configs: - source: nginx target: /etc/nginx/nginx.conf ports: - "5080:80" deploy: placement: constraints: - node.role == manager prometheus: image: prom/prometheus depends_on: - prometheus-statsd-exporter command: # Needed for the reverse-proxy - "--web.external-url=/prometheus" - "--config.file=/etc/prometheus/prometheus.yml" volumes: - "./conf/prometheus.yml:/etc/prometheus/prometheus.yml:ro" prometheus-statsd-exporter: image: prom/statsd-exporter command: - "--statsd.mapping-config=/etc/prometheus/statsd-mapping.yml" volumes: - "./conf/prometheus-statsd-mapping.yml:/etc/prometheus/statsd-mapping.yml:ro" grafana: image: grafana/grafana depends_on: - prometheus environment: GF_SERVER_ROOT_URL: http://localhost:5080/grafana volumes: - "./conf/grafana/provisioning:/etc/grafana/provisioning:ro" - "./conf/grafana/dashboards:/var/lib/grafana/dashboards" volumes: objstorage: storage: secrets: postgres-password: external: true configs: web: file: conf/web.yml storage: file: conf/storage.yml objstorage: file: conf/objstorage.yml nginx: file: conf/nginx.conf