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
networks:
maple-dev:
name: maple-dev
mapleopentech-dev:
name: mapleopentech-dev
driver: bridge
# Persistent volumes for development data
volumes:
cassandra-1-dev-data:
name: maple-cassandra-1-dev
name: mapleopentech-cassandra-1-dev
cassandra-2-dev-data:
name: maple-cassandra-2-dev
name: mapleopentech-cassandra-2-dev
cassandra-3-dev-data:
name: maple-cassandra-3-dev
name: mapleopentech-cassandra-3-dev
redis-dev-data:
name: maple-redis-dev
name: mapleopentech-redis-dev
meilisearch-dev-data:
name: maple-meilisearch-dev
name: mapleopentech-meilisearch-dev
seaweedfs-dev-data:
name: maple-seaweedfs-dev
name: mapleopentech-seaweedfs-dev
mariadb-dev-data:
name: maple-mariadb-dev
name: mapleopentech-mariadb-dev
wordpress-dev-data:
name: maple-wordpress-dev
name: mapleopentech-wordpress-dev
services:
cassandra-1:
image: cassandra:5.0.4
container_name: maple-cassandra-1-dev
container_name: mapleopentech-cassandra-1-dev
hostname: cassandra-1
ports:
- "9042:9042" # CQL native transport
- "9160:9160" # Thrift (legacy, optional)
environment:
- CASSANDRA_CLUSTER_NAME=maple-dev-cluster
- CASSANDRA_CLUSTER_NAME=mapleopentech-dev-cluster
- CASSANDRA_DC=datacenter1
- CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
- CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3
@ -42,7 +42,7 @@ services:
- cassandra-1-dev-data:/var/lib/cassandra
- ./cassandra/init-scripts:/init-scripts:ro
networks:
- maple-dev
- mapleopentech-dev
healthcheck:
test: ["CMD-SHELL", "cqlsh -e 'describe cluster' || exit 1"]
interval: 30s
@ -53,10 +53,10 @@ services:
cassandra-2:
image: cassandra:5.0.4
container_name: maple-cassandra-2-dev
container_name: mapleopentech-cassandra-2-dev
hostname: cassandra-2
environment:
- CASSANDRA_CLUSTER_NAME=maple-dev-cluster
- CASSANDRA_CLUSTER_NAME=mapleopentech-dev-cluster
- CASSANDRA_DC=datacenter1
- CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
- CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3
@ -65,7 +65,7 @@ services:
volumes:
- cassandra-2-dev-data:/var/lib/cassandra
networks:
- maple-dev
- mapleopentech-dev
depends_on:
- cassandra-1
healthcheck:
@ -78,10 +78,10 @@ services:
cassandra-3:
image: cassandra:5.0.4
container_name: maple-cassandra-3-dev
container_name: mapleopentech-cassandra-3-dev
hostname: cassandra-3
environment:
- CASSANDRA_CLUSTER_NAME=maple-dev-cluster
- CASSANDRA_CLUSTER_NAME=mapleopentech-dev-cluster
- CASSANDRA_DC=datacenter1
- CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
- CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3
@ -90,7 +90,7 @@ services:
volumes:
- cassandra-3-dev-data:/var/lib/cassandra
networks:
- maple-dev
- mapleopentech-dev
depends_on:
- cassandra-1
healthcheck:
@ -103,7 +103,7 @@ services:
redis:
image: redis:7-alpine
container_name: maple-redis-dev
container_name: mapleopentech-redis-dev
hostname: redis
ports:
- "6379:6379"
@ -111,7 +111,7 @@ services:
- redis-dev-data:/data
- ./redis/redis.dev.conf:/usr/local/etc/redis/redis.conf:ro
networks:
- maple-dev
- mapleopentech-dev
command: redis-server /usr/local/etc/redis/redis.conf
healthcheck:
test: ["CMD", "redis-cli", "ping"]
@ -122,18 +122,18 @@ services:
meilisearch:
image: getmeili/meilisearch:v1.5
container_name: maple-meilisearch-dev
container_name: mapleopentech-meilisearch-dev
hostname: meilisearch
ports:
- "7700:7700"
environment:
- 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
volumes:
- meilisearch-dev-data:/meili_data
networks:
- maple-dev
- mapleopentech-dev
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7700/health"]
interval: 10s
@ -143,7 +143,7 @@ services:
seaweedfs:
image: chrislusf/seaweedfs:latest
container_name: maple-seaweedfs-dev
container_name: mapleopentech-seaweedfs-dev
hostname: seaweedfs
ports:
- "8333:8333" # S3 API
@ -154,10 +154,17 @@ services:
volumes:
- seaweedfs-dev-data:/data
networks:
- maple-dev
- mapleopentech-dev
command: server -s3 -dir=/data -s3.port=8333 -ip=0.0.0.0
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
timeout: 3s
retries: 3
@ -169,14 +176,14 @@ services:
# Use this endpoint from frontend for file uploads
nginx-s3-proxy:
image: nginx:alpine
container_name: maple-nginx-s3-proxy-dev
container_name: mapleopentech-nginx-s3-proxy-dev
hostname: nginx-s3-proxy
ports:
- "8334:8334" # CORS-enabled S3 API proxy
volumes:
- ./nginx/seaweedfs-cors.conf:/etc/nginx/conf.d/default.conf:ro
networks:
- maple-dev
- mapleopentech-dev
depends_on:
- seaweedfs
healthcheck:
@ -188,22 +195,22 @@ services:
# MariaDB - WordPress database
# Access: localhost:3306
# Credentials: wordpress/wordpress (root: maple-dev-root-password)
# Credentials: wordpress/wordpress (root: mapleopentech-dev-root-password)
mariadb:
image: mariadb:11.2
container_name: maple-mariadb-dev
container_name: mapleopentech-mariadb-dev
hostname: mariadb
ports:
- "3306:3306"
environment:
- MARIADB_ROOT_PASSWORD=maple-dev-root-password
- MARIADB_ROOT_PASSWORD=mapleopentech-dev-root-password
- MARIADB_DATABASE=wordpress
- MARIADB_USER=wordpress
- MARIADB_PASSWORD=wordpress
volumes:
- mariadb-dev-data:/var/lib/mysql
networks:
- maple-dev
- mapleopentech-dev
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
@ -215,10 +222,10 @@ services:
# WordPress - Plugin development and testing
# Access: http://localhost:8081
# 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:
image: wordpress:latest
container_name: maple-wordpress-dev
container_name: mapleopentech-wordpress-dev
hostname: wordpress
ports:
- "8081:80"
@ -237,7 +244,7 @@ services:
# MaplePress plugin - mounted read-only for live development
- ../../../native/wordpress/maplepress-plugin:/var/www/html/wp-content/plugins/maplepress-plugin:ro
networks:
- maple-dev
- mapleopentech-dev
depends_on:
mariadb:
condition: service_healthy