# Define reusable volume mounts as an anchor x-geoserver-volume-mounts: &geoserver_volumes - geowebcache_data:/mnt/geowebcache_data - geoserver_data:/mnt/geoserver_data # Define reusable environment variables x-geoserver-env: &geoserver_environment SPRING_PROFILES_ACTIVE: "${GEOSERVER_DEFAULT_PROFILES}" # Enable the PostGIS JNDI datasource (for development purposes) JNDI_POSTGIS_ENABLED: true GEOWEBCACHE_CACHE_DIR: /mnt/geowebcache_data JAVA_OPTS: "${JAVA_OPTS_GEOSERVER}" services: gstemplate: user: ${GS_USER} environment: *geoserver_environment volumes: *geoserver_volumes deploy: mode: replicated replicas: 1 resources: limits: cpus: '2.0' memory: 2G postgrestemplate: image: postgres:15 shm_size: 512m environment: POSTGRES_DB: postgres POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres restart: unless-stopped deploy: resources: limits: cpus: '2.0' memory: 1G healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 postgistemplate: extends: service: postgrestemplate #image: postgis/postgis:latest #image with arm/64 support: image: imresamu/postgis:15-3.4 environment: POSTGRES_DB: postgis POSTGRES_USER: postgis POSTGRES_PASSWORD: postgis POSTGIS_GDAL_ENABLED_DRIVERS: ENABLE_ALL healthcheck: test: ["CMD-SHELL", "pg_isready -U postgis"] acldbtemplate: extends: service: postgistemplate environment: POSTGRES_DB: acl POSTGRES_USER: acl POSTGRES_PASSWORD: acls3cr3t healthcheck: test: ["CMD-SHELL", "pg_isready -U acl"] pgconfigdbtemplate: extends: service: postgrestemplate shm_size: 1g environment: POSTGRES_DB: pgconfig POSTGRES_USER: pgconfig POSTGRES_PASSWORD: pgconfig healthcheck: test: ["CMD-SHELL", "pg_isready -U pgconfig"] deploy: resources: limits: cpus: '4.0' memory: 2G pgbouncertemplate: image: bitnami/pgbouncer:latest environment: PGBOUNCER_MAX_CLIENT_CONN: 2000 PGBOUNCER_POOL_MODE: transaction PGBOUNCER_MAX_PREPARED_STATEMENTS: 100 PGBOUNCER_DEFAULT_POOL_SIZE: 50 PGBOUNCER_AUTH_TYPE: plain PGBOUNCER_PORT: 5432 POSTGRESQL_PORT: 5432 restart: unless-stopped healthcheck: test: ["CMD-SHELL", "PGPASSWORD=$$POSTGRES_PASSWORD psql -d $$POSTGRESQL_DATABASE -U $$POSTGRESQL_USERNAME -c 'select 1'"] deploy: mode: replicated replicas: 1 resources: limits: cpus: '2.0' memory: 64M