version: '3.7' services: db: image: library/postgres:9.6.24-alpine ports: - "5432:5432" environment: - "POSTGRES_DB=openfire" - "POSTGRES_USER=openfire" - "POSTGRES_PASSWORD=hunter2" volumes: - ./sql/clustered:/docker-entrypoint-initdb.d networks: openfire-clustered-net: ipv4_address: 172.60.0.11 lb: image: nginx:stable ports: - "55222:55222" - "57070:57070" - "57443:57443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf networks: openfire-clustered-net: ipv4_address: 172.60.0.99 xmpp1: image: "openfire:${OPENFIRE_TAG}" ports: - "5221:5222" - "5261:5269" - "7071:7070" - "7441:7443" - "9091:9090" depends_on: - "db" volumes: - ./_data/xmpp/1/conf:/var/lib/openfire/conf - ./_data/plugins:/opt/plugins - ../_common/wait-for-it.sh:/wait-for-it.sh command: ["/wait-for-it.sh", "-s", "db:5432", "--", "/sbin/entrypoint.sh"] networks: openfire-clustered-net: ipv4_address: 172.60.0.10 extra_hosts: - "xmpp1.localhost.example:172.60.0.10" - "conference.xmpp1.localhost.example:172.60.0.10" - "xmpp2.localhost.example:172.60.0.20" - "conference.xmpp2.localhost.example:172.60.0.20" - "xmpp3.localhost.example:172.60.0.30" - "conference.xmpp3.localhost.example:172.60.0.30" - "otherxmpp.localhost.example:172.60.0.110" - "conference.otherxmpp.localhost.example:172.60.0.110" xmpp2: image: "openfire:${OPENFIRE_TAG}" ports: - "5222:5222" - "5262:5269" - "7072:7070" - "7442:7443" - "9092:9090" depends_on: - "db" volumes: - ./_data/xmpp/2/conf:/var/lib/openfire/conf - ./_data/plugins:/opt/plugins - ../_common/wait-for-it.sh:/wait-for-it.sh command: ["/wait-for-it.sh", "-s", "db:5432", "--", "/sbin/entrypoint.sh"] networks: openfire-clustered-net: ipv4_address: 172.60.0.20 extra_hosts: - "xmpp1.localhost.example:172.60.0.10" - "conference.xmpp1.localhost.example:172.60.0.10" - "xmpp2.localhost.example:172.60.0.20" - "conference.xmpp2.localhost.example:172.60.0.20" - "xmpp3.localhost.example:172.60.0.30" - "conference.xmpp3.localhost.example:172.60.0.30" - "otherxmpp.localhost.example:172.60.0.110" - "conference.otherxmpp.localhost.example:172.60.0.110" xmpp3: image: "openfire:${OPENFIRE_TAG}" ports: - "5223:5222" - "5263:5269" - "7073:7070" - "7443:7443" - "9093:9090" depends_on: - "db" volumes: - ./_data/xmpp/3/conf:/var/lib/openfire/conf - ./_data/plugins:/opt/plugins - ../_common/wait-for-it.sh:/wait-for-it.sh command: ["/wait-for-it.sh", "-s", "db:5432", "--", "/sbin/entrypoint.sh"] networks: openfire-clustered-net: ipv4_address: 172.60.0.30 extra_hosts: - "xmpp1.localhost.example:172.60.0.10" - "conference.xmpp1.localhost.example:172.60.0.10" - "xmpp2.localhost.example:172.60.0.20" - "conference.xmpp2.localhost.example:172.60.0.20" - "xmpp3.localhost.example:172.60.0.30" - "conference.xmpp3.localhost.example:172.60.0.30" - "otherxmpp.localhost.example:172.60.0.110" - "conference.otherxmpp.localhost.example:172.60.0.110" otherdb: image: library/postgres:9.6.24-alpine ports: - "5433:5432" environment: - "POSTGRES_DB=openfire" - "POSTGRES_USER=openfire" - "POSTGRES_PASSWORD=hunter2" volumes: - ./sql/otherdomain:/docker-entrypoint-initdb.d networks: openfire-clustered-net: ipv4_address: 172.60.0.111 otherxmpp: image: "openfire:${OPENFIRE_TAG}" ports: - "5229:5222" - "5269:5269" - "7079:7070" - "7449:7443" - "9099:9090" depends_on: - "otherdb" volumes: - ./_data/xmpp/otherdomain/conf:/var/lib/openfire/conf - ./_data/plugins_for_otherdomain:/opt/plugins - ../_common/wait-for-it.sh:/wait-for-it.sh command: ["/wait-for-it.sh", "-s", "otherdb:5432", "--", "/sbin/entrypoint.sh"] networks: openfire-clustered-net: ipv4_address: 172.60.0.110 extra_hosts: - "xmpp.localhost.example:172.60.0.99" - "conference.xmpp.localhost.example:172.60.0.99" - "otherxmpp.localhost.example:172.60.0.110" - "conference.otherxmpp.localhost.example:172.60.0.110" dozzle: image: amir20/dozzle:latest volumes: - /var/run/docker.sock:/var/run/docker.sock ports: - 9999:8080 networks: openfire-clustered-net: driver: bridge ipam: driver: default config: - subnet: 172.60.0.0/24