This commit is contained in:
Bartlomiej Mika 2025-12-02 14:53:07 -05:00
parent 404034d85a
commit f4a49ad4b9

View file

@ -1,38 +1,38 @@
# Shared network for all Maple services in development # Shared network for all Maple services in development
networks: networks:
maple-dev: mapleopentech-dev:
name: maple-dev name: mapleopentech-dev
driver: bridge driver: bridge
# Persistent volumes for development data # Persistent volumes for development data
volumes: volumes:
cassandra-1-dev-data: cassandra-1-dev-data:
name: maple-cassandra-1-dev name: mapleopentech-cassandra-1-dev
cassandra-2-dev-data: cassandra-2-dev-data:
name: maple-cassandra-2-dev name: mapleopentech-cassandra-2-dev
cassandra-3-dev-data: cassandra-3-dev-data:
name: maple-cassandra-3-dev name: mapleopentech-cassandra-3-dev
redis-dev-data: redis-dev-data:
name: maple-redis-dev name: mapleopentech-redis-dev
meilisearch-dev-data: meilisearch-dev-data:
name: maple-meilisearch-dev name: mapleopentech-meilisearch-dev
seaweedfs-dev-data: seaweedfs-dev-data:
name: maple-seaweedfs-dev name: mapleopentech-seaweedfs-dev
mariadb-dev-data: mariadb-dev-data:
name: maple-mariadb-dev name: mapleopentech-mariadb-dev
wordpress-dev-data: wordpress-dev-data:
name: maple-wordpress-dev name: mapleopentech-wordpress-dev
services: services:
cassandra-1: cassandra-1:
image: cassandra:5.0.4 image: cassandra:5.0.4
container_name: maple-cassandra-1-dev container_name: mapleopentech-cassandra-1-dev
hostname: cassandra-1 hostname: cassandra-1
ports: ports:
- "9042:9042" # CQL native transport - "9042:9042" # CQL native transport
- "9160:9160" # Thrift (legacy, optional) - "9160:9160" # Thrift (legacy, optional)
environment: environment:
- CASSANDRA_CLUSTER_NAME=maple-dev-cluster - CASSANDRA_CLUSTER_NAME=mapleopentech-dev-cluster
- CASSANDRA_DC=datacenter1 - CASSANDRA_DC=datacenter1
- CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
- CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3 - CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3
@ -42,7 +42,7 @@ services:
- cassandra-1-dev-data:/var/lib/cassandra - cassandra-1-dev-data:/var/lib/cassandra
- ./cassandra/init-scripts:/init-scripts:ro - ./cassandra/init-scripts:/init-scripts:ro
networks: networks:
- maple-dev - mapleopentech-dev
healthcheck: healthcheck:
test: ["CMD-SHELL", "cqlsh -e 'describe cluster' || exit 1"] test: ["CMD-SHELL", "cqlsh -e 'describe cluster' || exit 1"]
interval: 30s interval: 30s
@ -53,10 +53,10 @@ services:
cassandra-2: cassandra-2:
image: cassandra:5.0.4 image: cassandra:5.0.4
container_name: maple-cassandra-2-dev container_name: mapleopentech-cassandra-2-dev
hostname: cassandra-2 hostname: cassandra-2
environment: environment:
- CASSANDRA_CLUSTER_NAME=maple-dev-cluster - CASSANDRA_CLUSTER_NAME=mapleopentech-dev-cluster
- CASSANDRA_DC=datacenter1 - CASSANDRA_DC=datacenter1
- CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
- CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3 - CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3
@ -65,7 +65,7 @@ services:
volumes: volumes:
- cassandra-2-dev-data:/var/lib/cassandra - cassandra-2-dev-data:/var/lib/cassandra
networks: networks:
- maple-dev - mapleopentech-dev
depends_on: depends_on:
- cassandra-1 - cassandra-1
healthcheck: healthcheck:
@ -78,10 +78,10 @@ services:
cassandra-3: cassandra-3:
image: cassandra:5.0.4 image: cassandra:5.0.4
container_name: maple-cassandra-3-dev container_name: mapleopentech-cassandra-3-dev
hostname: cassandra-3 hostname: cassandra-3
environment: environment:
- CASSANDRA_CLUSTER_NAME=maple-dev-cluster - CASSANDRA_CLUSTER_NAME=mapleopentech-dev-cluster
- CASSANDRA_DC=datacenter1 - CASSANDRA_DC=datacenter1
- CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
- CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3 - CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3
@ -90,7 +90,7 @@ services:
volumes: volumes:
- cassandra-3-dev-data:/var/lib/cassandra - cassandra-3-dev-data:/var/lib/cassandra
networks: networks:
- maple-dev - mapleopentech-dev
depends_on: depends_on:
- cassandra-1 - cassandra-1
healthcheck: healthcheck:
@ -103,7 +103,7 @@ services:
redis: redis:
image: redis:7-alpine image: redis:7-alpine
container_name: maple-redis-dev container_name: mapleopentech-redis-dev
hostname: redis hostname: redis
ports: ports:
- "6379:6379" - "6379:6379"
@ -111,7 +111,7 @@ services:
- redis-dev-data:/data - redis-dev-data:/data
- ./redis/redis.dev.conf:/usr/local/etc/redis/redis.conf:ro - ./redis/redis.dev.conf:/usr/local/etc/redis/redis.conf:ro
networks: networks:
- maple-dev - mapleopentech-dev
command: redis-server /usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf
healthcheck: healthcheck:
test: ["CMD", "redis-cli", "ping"] test: ["CMD", "redis-cli", "ping"]
@ -122,18 +122,18 @@ services:
meilisearch: meilisearch:
image: getmeili/meilisearch:v1.5 image: getmeili/meilisearch:v1.5
container_name: maple-meilisearch-dev container_name: mapleopentech-meilisearch-dev
hostname: meilisearch hostname: meilisearch
ports: ports:
- "7700:7700" - "7700:7700"
environment: environment:
- MEILI_ENV=development - MEILI_ENV=development
- MEILI_MASTER_KEY=maple-dev-master-key-change-in-production - MEILI_MASTER_KEY=mapleopentech-dev-master-key-change-in-production
- MEILI_NO_ANALYTICS=true - MEILI_NO_ANALYTICS=true
volumes: volumes:
- meilisearch-dev-data:/meili_data - meilisearch-dev-data:/meili_data
networks: networks:
- maple-dev - mapleopentech-dev
healthcheck: healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7700/health"] test: ["CMD", "curl", "-f", "http://localhost:7700/health"]
interval: 10s interval: 10s
@ -143,21 +143,28 @@ services:
seaweedfs: seaweedfs:
image: chrislusf/seaweedfs:latest image: chrislusf/seaweedfs:latest
container_name: maple-seaweedfs-dev container_name: mapleopentech-seaweedfs-dev
hostname: seaweedfs hostname: seaweedfs
ports: ports:
- "8333:8333" # S3 API - "8333:8333" # S3 API
- "9333:9333" # Master server (web UI) - "9333:9333" # Master server (web UI)
- "8080:8080" # Volume server - "8080:8080" # Volume server
environment: environment:
- WEED_MASTER_VOLUME_SIZE_LIMIT_MB=1024 - WEED_MASTER_VOLUME_SIZE_LIMIT_MB=1024
volumes: volumes:
- seaweedfs-dev-data:/data - seaweedfs-dev-data:/data
networks: networks:
- maple-dev - mapleopentech-dev
command: server -s3 -dir=/data -s3.port=8333 -ip=0.0.0.0 command: server -s3 -dir=/data -s3.port=8333 -ip=0.0.0.0
healthcheck: healthcheck:
test: ["CMD", "/usr/bin/wget", "-q", "--spider", "http://127.0.0.1:9333/cluster/status"] test:
[
"CMD",
"/usr/bin/wget",
"-q",
"--spider",
"http://127.0.0.1:9333/cluster/status",
]
interval: 10s interval: 10s
timeout: 3s timeout: 3s
retries: 3 retries: 3
@ -169,14 +176,14 @@ services:
# Use this endpoint from frontend for file uploads # Use this endpoint from frontend for file uploads
nginx-s3-proxy: nginx-s3-proxy:
image: nginx:alpine image: nginx:alpine
container_name: maple-nginx-s3-proxy-dev container_name: mapleopentech-nginx-s3-proxy-dev
hostname: nginx-s3-proxy hostname: nginx-s3-proxy
ports: ports:
- "8334:8334" # CORS-enabled S3 API proxy - "8334:8334" # CORS-enabled S3 API proxy
volumes: volumes:
- ./nginx/seaweedfs-cors.conf:/etc/nginx/conf.d/default.conf:ro - ./nginx/seaweedfs-cors.conf:/etc/nginx/conf.d/default.conf:ro
networks: networks:
- maple-dev - mapleopentech-dev
depends_on: depends_on:
- seaweedfs - seaweedfs
healthcheck: healthcheck:
@ -188,22 +195,22 @@ services:
# MariaDB - WordPress database # MariaDB - WordPress database
# Access: localhost:3306 # Access: localhost:3306
# Credentials: wordpress/wordpress (root: maple-dev-root-password) # Credentials: wordpress/wordpress (root: mapleopentech-dev-root-password)
mariadb: mariadb:
image: mariadb:11.2 image: mariadb:11.2
container_name: maple-mariadb-dev container_name: mapleopentech-mariadb-dev
hostname: mariadb hostname: mariadb
ports: ports:
- "3306:3306" - "3306:3306"
environment: environment:
- MARIADB_ROOT_PASSWORD=maple-dev-root-password - MARIADB_ROOT_PASSWORD=mapleopentech-dev-root-password
- MARIADB_DATABASE=wordpress - MARIADB_DATABASE=wordpress
- MARIADB_USER=wordpress - MARIADB_USER=wordpress
- MARIADB_PASSWORD=wordpress - MARIADB_PASSWORD=wordpress
volumes: volumes:
- mariadb-dev-data:/var/lib/mysql - mariadb-dev-data:/var/lib/mysql
networks: networks:
- maple-dev - mapleopentech-dev
healthcheck: healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s interval: 10s
@ -215,10 +222,10 @@ services:
# WordPress - Plugin development and testing # WordPress - Plugin development and testing
# Access: http://localhost:8081 # Access: http://localhost:8081
# Plugin auto-mounted from: native/wordpress/maplepress-plugin # Plugin auto-mounted from: native/wordpress/maplepress-plugin
# Debug logs: docker exec -it maple-wordpress-dev tail -f /var/www/html/wp-content/debug.log # Debug logs: docker exec -it mapleopentech-wordpress-dev tail -f /var/www/html/wp-content/debug.log
wordpress: wordpress:
image: wordpress:latest image: wordpress:latest
container_name: maple-wordpress-dev container_name: mapleopentech-wordpress-dev
hostname: wordpress hostname: wordpress
ports: ports:
- "8081:80" - "8081:80"
@ -237,7 +244,7 @@ services:
# MaplePress plugin - mounted read-only for live development # MaplePress plugin - mounted read-only for live development
- ../../../native/wordpress/maplepress-plugin:/var/www/html/wp-content/plugins/maplepress-plugin:ro - ../../../native/wordpress/maplepress-plugin:/var/www/html/wp-content/plugins/maplepress-plugin:ro
networks: networks:
- maple-dev - mapleopentech-dev
depends_on: depends_on:
mariadb: mariadb:
condition: service_healthy condition: service_healthy